如何通过AVFoundation更改视频捕获的大小设置

9 iphone avfoundation ios

我创建了一个应用程序,录制视频并将其上传到服务器上,但视频以非常高的分辨率录制,我想降低其分辨率,我在互联网上了解AVCaptureSessionPreset640x480,但我不知道如何使用它.

Mid*_* MP 18

您可以使用sessionPreset属性更改分辨率.会话预设的默认值AVCaptureSessionPresetHigh适用于高质量的视频和音频输出.

您可以将会话预设设置为:

[self.yourSession setSessionPreset:AVCaptureSessionPresetLow];
Run Code Online (Sandbox Code Playgroud)

sessionPreset

一个常数值,表示输出的质量等级或比特率.@property(非原子,复制)NSString*sessionPreset讨论

您可以使用此属性来自定义输出的质量级别或比特率.有关sessionPreset的可能值,请参阅"视频输入预设".默认值为AVCaptureSessionPresetHigh.

您可以在会话运行时设置此值.

您只能在以下情况下设置预设canSetSessionPreset:为该预设返回YES.可用性

Available in iOS 4.0 and later.
Run Code Online (Sandbox Code Playgroud)

在AVCaptureSession.h中声明

会话预设的可能值为:

视频输入预设

使用sessionPreset 属性定义捕获设置预设的常量.

NSString*const AVCaptureSessionPresetPhoto;

NSString*const AVCaptureSessionPresetHigh;

NSString*const AVCaptureSessionPresetMedium;

NSString*const AVCaptureSessionPresetLow;

NSString*const AVCaptureSessionPreset352x288;

NSString*const AVCaptureSessionPreset640x480;

NSString*const AVCaptureSessionPreset1280x720;

NSString*const AVCaptureSessionPreset1920x1080;

NSString*const AVCaptureSessionPresetiFrame960x540;

NSString*const AVCaptureSessionPresetiFrame1280x720;

恒定细节:

AVCaptureSessionPresetPhoto

Specifies capture settings suitable for high resolution photo quality output.

Available in iOS 4.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPresetHigh

Specifies capture settings suitable for high quality video and audio output.

Available in iOS 4.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPresetMedium

Specifies capture settings suitable for output video and audio bitrates suitable for sharing over WiFi.

Available in iOS 4.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPresetLow

Specifies capture settings suitable for output video and audio bitrates suitable for sharing over 3G.

Available in iOS 4.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPreset352x288

Specifies capture settings suitable for CIF quality (352x288 pixel) video output.

Available in iOS 5.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPreset640x480

Specifies capture settings suitable for VGA quality (640x480 pixel) video output.

Available in iOS 4.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPreset1280x720

Specifies capture settings suitable for 720p quality (1280x720 pixel) video output.

Available in iOS 4.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPreset1920x1080

Specifies capture settings suitable for 1080p quality (1920x1080 pixel) video output.

Available in iOS 5.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPresetiFrame960x540

Specifies capture settings to achieve 960x540 quality iFrame H.264 video at about 30 Mbits/sec with AAC audio.

QuickTime movies captured in iFrame format are optimal for editing applications.

Available in iOS 5.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

AVCaptureSessionPresetiFrame1280x720

Specifies capture settings to achieve 1280x720 quality iFrame H.264 video at about 40 Mbits/sec with AAC audio.

QuickTime movies captured in iFrame format are optimal for editing applications.

Available in iOS 5.0 and later.

Declared in AVCaptureSession.h.
Run Code Online (Sandbox Code Playgroud)

请参考:AVCaptureSession


sun*_*ppy 13

if ([self.captureSession canSetSessionPreset:AVCaptureSessionPreset640x480]) {
    [self.captureSession setSessionPreset:AVCaptureSessionPreset640x480];
}
Run Code Online (Sandbox Code Playgroud)