相关疑难解决方法(0)

如何控制AVAssetWriter以正确的FPS写入

让我看看我是否理解正确.

在目前最先进的硬件上,iOS允许我以下列fps进行录制:30,60,120和240.

但这些fps表现不同.如果我以30或60 fps拍摄,我希望通过这些fps拍摄创建的视频文件分别以30和60 fps播放.

但是如果我以120或240 fps的速度拍摄,我希望以这些fps拍摄的视频文件以30 fps的速度播放,否则我将看不到慢动作.

几个问题:

  1. 我对吗?
  2. 有没有办法以120或240 fps的速度分别以120和240 fps的速度进行拍摄?我的意思是在没有慢动作的情况下拍摄视频的fps?
  3. 在编写文件时如何控制该帧速率?

我正在创建像这样的AVAssetWriter输入......

  NSDictionary *videoCompressionSettings = @{AVVideoCodecKey                  : AVVideoCodecH264,
                                             AVVideoWidthKey                  : @(videoWidth),
                                             AVVideoHeightKey                 : @(videoHeight),
                                             AVVideoCompressionPropertiesKey  : @{ AVVideoAverageBitRateKey      : @(bitsPerSecond),
                                                                                   AVVideoMaxKeyFrameIntervalKey : @(1)}
                                             };

    _assetWriterVideoInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoCompressionSettings];
Run Code Online (Sandbox Code Playgroud)

并没有明显的方法来控制它.

注意:我尝试了不同的数字1.我试过1.0/fps,我试过fps,我已经删除了密钥.没有不同.

这就是我设置`AVAssetWriter的方法:

  AVAssetWriter *newAssetWriter = [[AVAssetWriter alloc] initWithURL:_movieURL fileType:AVFileTypeQuickTimeMovie
                                          error:&error];

  _assetWriter = newAssetWriter;
  _assetWriter.shouldOptimizeForNetworkUse = NO;

  CGFloat videoWidth = size.width;
  CGFloat videoHeight  = size.height;

  NSUInteger numPixels = videoWidth * videoHeight;
  NSUInteger …
Run Code Online (Sandbox Code Playgroud)

avfoundation ios avassetwriter

10
推荐指数
1
解决办法
3464
查看次数

标签 统计

avassetwriter ×1

avfoundation ×1

ios ×1