有人知道如何在AVFoundation中使用AVAssetWriter将未压缩的帧存储到mov中吗?我实际上使用以下代码片段来获取ProRes4444内容:
NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
AVVideoCodecAppleProRes4444, AVVideoCodecKey,
widthNum, AVVideoWidthKey,
heightNum, AVVideoHeightKey,
nil];
assetWriterInput = [[AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoSettings] retain];
从AVAssetWriter标头读取,据说使用来自核心视频常量的kCVPixelFormat常量,我尝试了以下内容:
kCVPixelFormatType_32RGBA,AVVideoCodecKey
但它似乎不起作用。任何人都有关于这个主题的一些提示?
非常感谢!
答案 0 :(得分:1)
kCVPixelFormatType_32RGBA不是编解码器类型,它是像素格式。
These是受支持的编解码器。我不确定kCMVideoCodecType_422YpCbCr8是否是未压缩选项,但kCMVideoCodecType_Animation应该执行该工作。它使用无损压缩(类似于压缩文件,然后在不降低质量的情况下进行恢复)。
答案 1 :(得分:0)
如果您需要非常高质量的视频,可以将关键帧速率设置为1并将比特率设置得非常高。所有帧都是关键帧,因此您可以根据需要“擦除”视频。如果有的话,你不会丢失太多信息。另请参阅AVCaptureSessionPresetiFrame960x540以及AVCaptureSession.h中的其他内容。这是我提到的那个的描述
@constant AVCaptureSessionPresetiFrame960x540
@abstract
An AVCaptureSession preset producing 960x540 Apple iFrame video and audio content.
@discussion
Clients may set an AVCaptureSession instance's sessionPreset to AVCaptureSessionPresetiFrame960x540
to achieve 960x540 quality iFrame H.264 video at ~30 Mbits/sec with AAC audio. QuickTime
movies captured in iFrame format are optimal for editing applications.