Ios iphone导出-如何在视频中维护FPS>;每秒30帧

Ios iphone导出-如何在视频中维护FPS>;每秒30帧,ios,video,frame-rate,avassetexportsession,Ios,Video,Frame Rate,Avassetexportsession,我们正在尝试导出视频并维护其FPS。正在发生的事情: 对于1秒视频剪辑示例: 以每秒30帧的速度拍摄的常规运动视频-以每秒30帧的速度导出-30帧 总数 以每秒60帧的速度拍摄的常规运动视频-以每秒30帧的速度导出- 共30帧 慢动作视频设置在摄影机滚动中,以慢动作播放,导出 以每秒30帧的速度-但输出每帧以覆盖更长的播放时间 (例如,每秒240帧的1秒视频输出每秒30帧的8秒视频 fps)-so 120或240总计 慢动作视频(120或240)设置为以本机速度播放(或1 第二)-以每秒30帧

我们正在尝试导出视频并维护其FPS。正在发生的事情:

对于1秒视频剪辑示例:

  • 以每秒30帧的速度拍摄的常规运动视频-以每秒30帧的速度导出-30帧 总数
  • 以每秒60帧的速度拍摄的常规运动视频-以每秒30帧的速度导出- 共30帧
  • 慢动作视频设置在摄影机滚动中,以慢动作播放,导出 以每秒30帧的速度-但输出每帧以覆盖更长的播放时间 (例如,每秒240帧的1秒视频输出每秒30帧的8秒视频 fps)-so 120或240总计
  • 慢动作视频(120或240)设置为以本机速度播放(或1 第二)-以每秒30帧的速度导出-总共30帧
我们想要的-导出以在所有情况下匹配摄影机滚动FPS。我们也在压缩视频

我们试图通过审查以下内容和其他内容来解决问题,但均未成功:

我猜我们可能需要一种完全不同的方法-尚未解决-这里是用于尝试上传240 fps视频的代码,该视频设置为以本机速度播放-结果是30 fps 1秒视频(而不是240 fps 1秒视频):


关于如何修复当前代码,或者如何以不同的方式工作,有什么建议吗?

您解决过这个问题吗?我也有同样的问题,我只想将5秒240fps的视频转换成30帧每秒的slomo视频,这是8倍的长。
    PHVideoRequestOptions *options = [PHVideoRequestOptions new];
    options.version = PHVideoRequestOptionsVersionCurrent;

    [[PHImageManager defaultManager] requestAVAssetForVideo:_phasset options:options resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * 

    _Nullable audioMix, NSDictionary * _Nullable info) 

    {
    if(([asset isKindOfClass:[AVComposition class]] && ((AVComposition *)asset).tracks.count == 2)) {
        SDAVAssetExportSession *encoder = [[SDAVAssetExportSession alloc] initWithAsset:asset];
        encoder.outputFileType = AVFileTypeQuickTimeMovie;
                            encoder.outputURL = url;
                            encoder.videoSettings = @
                            {
                            AVVideoCodecKey: AVVideoCodecH264,
                            AVVideoWidthKey: [NSNumber numberWithInteger:newWidth],
                            AVVideoHeightKey: [NSNumber numberWithInteger:newHeight],
                            AVVideoCompressionPropertiesKey: @
                                {
                                    //                                AVVideoAverageBitRateKey: [NSNumber numberWithInteger:bitrate * 1024],
                                AVVideoAverageBitRateKey: [NSNumber numberWithInteger:bitrate * 1024],
                                AVVideoProfileLevelKey: AVVideoProfileLevelH264High40,
//                                    AVVideoMaxKeyFrameIntervalKey: [NSNumber numberWithInt:240],
                                AVVideoExpectedSourceFrameRateKey: [NSNumber numberWithInteger:240]
                                },
                            };

                            encoder.audioSettings = @
                            {
                            AVFormatIDKey: @(kAudioFormatMPEG4AAC),
                            AVNumberOfChannelsKey: @1,
                            AVSampleRateKey: @44100,
                            AVEncoderBitRateKey: @128000,
                            };

            [encoder exportAsynchronouslyWithCompletionHandler:^{
                if (encoder.status == AVAssetExportSessionStatusCompleted) {
                    NSURL *URL = encoder.outputURL;
                    // exported video's fps is not 240 fps on here
                }
            }];
    } else {
        …
    }
}