AVFoundation之音视频采集(一)拍照、视频采集(H264)

编程入门 行业动态 更新时间:2024-10-26 04:24:45

AVFoundation之音<a href=https://www.elefans.com/category/jswz/34/1757101.html style=视频采集(一)拍照、视频采集(H264)"/>

AVFoundation之音视频采集(一)拍照、视频采集(H264)

访问摄像头先添在info 文件中添加 NSCameraUsageDescription key字段。

用AVFoundation做音视频采集,首先记住一张图。

这张图完全展示了 AVFoundation 是如何做音视频采集的。

1.首先创建一个AVCAaptureSeesion对象。

 

2.获取输入设备,输入设备指的是摄像机和麦克风。

获取输入设备是为了初始化输入会话(AVCaptureDeviceInput)。因为做视频采集,所以选择一个摄像头做输入设备。

[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]

3.创建输入会话。

用上面得到的摄像头创建输入会话。self.activityCamera就是上面得到的摄像头

[[AVCaptureDeviceInput alloc] initWithDevice:self.activityCamera error:nil];

4.用AVCAaptureSeesion对象添加创建的输入会话。

    [_session beginConfiguration];if ([self.session canAddInput:_captureInput]) {[self.session addInput:_captureInput];}[_session commitConfiguration];

5.创建输出

不同的输出有不同的作用

AVCaptureOutput是输出抽象类

AVCapturePhotoOutput用来捕捉静态图片,实时照片,但是他只有在iOS10+才能用。

AVCaptureDepthDataOutput 用来捕获摄像机设备上记录的场景深度信息在iOS11+才能用。

 AVCaptureVideoDataOutput 用来捕获视频帧数据。

AVCaptureFileOutput 捕获记录在文件的抽象类。

AVCaptureMetadataOutput 用来捕获二维码、条形码等信息

AVCaptureAudioDataOutput 捕获音频数据。

AVCaptureMovieFileOutput 捕获QuickTime电影数据。

AVCaptureAudioFileOutput 音频文件。

还有一个过时的AVCaptureStillImageOutput 它在iOS10被弃用了改为用AVCapturePhotoOutput,AVCaptureStillImageOutput是用来捕获照片的。

创建一个AVCaptureStillImageOutput用来捕捉静态图片。

- (void)captureStillImageAsynchronouslyFromConnection:(AVCaptureConnection *)connection completionHandler:(void (^)(CMSampleBufferRef _Nullable imageDataSampleBuffer, NSError * _Nullable error))handler;

拍照方法,在拍照方法的block中获取照片。

如果想要捕捉视频帧做编码,用AVCaptureVideoDataOutput 做输出。AVCaptureVideoDataOutput的delegate中有CMSampleBuffer,他是一种包含媒体数据的类型。也可以在其中做一些滤镜处理。

 

这是一个例子

更多推荐

AVFoundation之音视频采集(一)拍照、视频采集(H264)

本文发布于:2024-02-27 14:37:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1706925.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:视频采集   之音   AVFoundation

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!