1

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

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

AVAssetExportPresetLowQuality
AVAssetExportPresetMediumQuality
AVAssetExportPresetHighestQuality

AVAssetExportPreset640x480
AVAssetExportPreset960x540
AVAssetExportPreset1280x720
AVAssetExportPreset1920x1080

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

如果可能的话,我想使用硬件加速库来实现这一点。

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

4

2 回答 2

0

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

于 2013-04-24T05:18:18.773 回答
0

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

将 alwaysDiscardsLateVideoFrames 属性设置为 YES(默认值),以便及早、有效地丢弃迟到的视频帧

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

于 2013-04-26T17:27:02.127 回答