在我的iPhone应用程序中,我想将录制格式(HD)的视频转换为较低的分辨率(320x240),但我希望保持30fps的帧速率。
我目前正在使用AVAssetExportPreset进行转换,但唯一可用的值是:
AVAssetExportPresetLowQuality
AVAssetExportPresetMediumQuality
AVAssetExportPresetHighestQuality
和
AVAssetExportPreset640x480
AVAssetExportPreset960x540
AVAssetExportPreset1280x720
AVAssetExportPreset1920x1080
这些似乎都不符合我的要求。低接近但比特率非常低,它将帧速率强制为15fps,这是不好的。
如果可能,我希望使用硬件加速库来实现这一目标。
任何想法如何解决这个问题?
答案 0 :(得分:0)
使用GPUImage转换所需大小和所需质量的视频。
答案 1 :(得分:0)
如果按住缓冲区,相机可能会停止传送帧 时间过长。因此,样本缓冲区委托的回调必须很快。
将alwaysDiscardsLateVideoFrames属性设置为YES (默认值),以便及早有效地删除后期视频帧
如果您在处理过程中使用CoreGraphics和/或OpenGL,它们都可以与'BGRA'配合使用。您可以设置videoSettings属性以指定自定义输出格式。