4

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

しかし、うまくいかないようです。誰でもこのトピックに関するヒントを持っていますか?

どうもありがとう !

4

2 に答える 2

1

kCVPixelFormatType_32RGBA はコーデック タイプではなく、ピクセル形式です。

サポートされているコーデックは次のとおりですkCMVideoCodecType_422YpCbCr8 が圧縮されていないオプションであるかどうかはわかりませんが、そうでない場合は kCMVideoCodecType_Animation が仕事をするはずです。可逆圧縮を使用します (ファイルを圧縮してから、品質を損なうことなく復元するのと同様です)。

于 2012-09-26T16:56:04.450 に答える
0

非常に高品質のビデオが必要な場合は、キーフレーム レートを 1 に設定し、ビットレートを非常に高く設定します。すべてのフレームがキー フレームになるので、必要に応じてビデオを「スクラブ」できます。たとえあったとしても、多くの情報を失うことはありません。AVCaptureSession.h の AVCaptureSessionPresetiFrame960x540 なども見てください。ここに私が言及したものの説明があります

@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.
于 2012-09-28T00:52:50.083 に答える