【问题标题】:Exporting videos on iOS: understanding and setting frame duration property?在 iOS 上导出视频:理解和设置帧持续时间属性?
【发布时间】:2016-04-28 11:32:29
【问题描述】:
在this tutorial 合并视频中,作者将导出视频的帧时长设置为 30 FPS。
1) 与其将帧持续时间固定为 30 FPS,不如将帧持续时间与正在合并的视频的帧持续时间绑定?
2) 导出视频时,对与源视频不同的导出视频使用不同的 FPS 有哪些优点/缺点?这是以牺牲视频质量为代价加快导出时间的一种方式吗?例如,如果教程中的源视频是以 24 FPS 的速度拍摄的呢?
我们需要在 iOS 上导出视频,有时会合并多个视频,有时会导出从相机设备捕获的单个视频。
【问题讨论】:
标签:
ios
video
avfoundation
avassetexportsession
【解决方案1】:
1) 如果可能的话,是的。
2) 当源 FPS 和目标 FPS 相同时,目标视频的质量会更好,并且(很可能)导出过程会更快。
这样想:
当我们有例如24FPS 源和 24FPS 目标,这个过程只是获取一个源帧并生成一个目标帧。
当我们有例如24FPS 源和 30FPS 目标,过程将是:
-
获取第一帧源 -> 第一帧目标,
第二帧源 -> 第二帧目标,
第 2 帧源 -> 第 3 帧目标,
第 3 帧源 -> 第 4 帧目标,依此类推。
或
-
获取第一帧源 -> 第一帧目标
将第一帧源与第二帧源混合 -> 第二帧目标
将第 2 帧源与第 3 帧源混合 -> 第 3 帧目标
获取第 3 帧源 -> 第 4 帧目标,依此类推。
所以每秒从 24 帧生成 30 帧。
方法 1 可能不会影响处理速度,但方法 2 会因为涉及到混合。