在iOS中将视频转换为320x240 @ 30fps

时间:2013-04-24 03:40:23

标签: iphone ios video avfoundation

在我的iPhone应用程序中,我想将录制格式(HD)的视频转换为较低的分辨率(320x240),但我希望保持30fps的帧速率。

我目前正在使用AVAssetExportPreset进行转换,但唯一可用的值是:

AVAssetExportPresetLowQuality
AVAssetExportPresetMediumQuality
AVAssetExportPresetHighestQuality

AVAssetExportPreset640x480
AVAssetExportPreset960x540
AVAssetExportPreset1280x720
AVAssetExportPreset1920x1080

这些似乎都不符合我的要求。低接近但比特率非常低,它将帧速率强制为15fps,这是不好的。

如果可能,我希望使用硬件加速库来实现这一目标。

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

使用GPUImage转换所需大小和所需质量的视频。

答案 1 :(得分:0)

如果按住缓冲区,相机可能会停止传送帧 时间过长。因此,样本缓冲区委托的回调必须很快。

将alwaysDiscardsLateVideoFrames属性设置为YES (默认值),以便及早有效地删除后期视频帧

如果您在处理过程中使用CoreGraphics和/或OpenGL,它们都可以与'BGRA'配合使用。您可以设置videoSettings属性以指定自定义输出格式。