SlideShare a Scribd company logo
1 of 11
Download to read offline
NHN	NEXT	Eunjoo	Im
iOS

AVFoundation
Record
NHN NEXT

iOS Advanced
NHN	NEXT	Eunjoo	Im
AV

Foundation
이란?
▪ iOS and OS X 애플리케이션에서 

시각/청각 미디어를 관리하는 Objective-C interface

▪ 오디오와 비디오를 녹음/녹화하고 편집하며 재생할 수
있음

▪ 단순히 비디오 재생을 원할 경우 AVKit을,

단순한 비디오 녹화를 원할 경우 UIKit 사용
출처: https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/
Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188
NHN	NEXT	Eunjoo	Im
AV

Foundation
Stack
출처: https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/
Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188

http://www.slideshare.net/invalidname/mastering-media-with-av-foundation
<iOS AVFoundation stack> <OS X AVFoundation stack>
Core Audio/

OpenAL
가장 저레벨의

오디오 스트리밍 프레임워크
Media Player 전체 화면 비디오 플레이어
AV Foundation
오디오 재생을 위한

Objective-C 래퍼
Core Video 동영상에 Quartz 효과
Core Media
미디어 샘플과 타이밍을 재현하는 구조를 지닌

C 기반 프레임워크
<iOS Media Framworks>
NHN	NEXT	Eunjoo	Im
Asset

재생 (1)
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/
02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW1
▪ AVPlayer 객체로 직접 Asset을 전달하지 않음

▪ 대신 Asset의 상태를 관리하는 AVPlayerItem 객체 사용

▪ AVPlayerItem은 asset의 track에 맞는
AVPlayerItemTrack을 지님
NHN	NEXT	Eunjoo	Im
Asset

재생 (2)
출처: https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/
Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188
▪ AVPlayerLayer 레이어를 사용할 뷰 설정

▪ AVPlayer 객체 생성 

▪ asset을 위한 AVPlayerItem 객체를 생성하고

상태 관찰을 위해 Key-Value observing 사용

▪ 아이템이 재생 준비 상태가 되면 버튼 활성화

▪ 아이템을 다 재생하면 플레이어의 헤드를 맨 앞으로 설정
<AVAsset Playback simple example>

https://github.com/luvgaram/AVFoundation_Example/tree/
master/AVFoundation_Asset_Playback
NHN	NEXT	Eunjoo	Im
Asset

편집
▪ 빠른 속도

▪ 모바일을 위해서 만들어졌기 때문에,

데이타를 저장하고 불러오는 것이 빠르고 효율적

▪ AVMutableComposition 클래스를 이용해서

오디오/비디오를 편집할 수 있음

▪ 기존 Asset들을 조합하여 새로운 Asset 생성 가능
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/
03_Editing.html
NHN	NEXT	Eunjoo	Im
오디오 녹음/

비디오 녹화

(1)
▪ 단일 AVCaptureSession 객체를 사용해서 여러 개의 인풋/아웃
풋 데이터 플로우를 조합 가능

▪ 카메라나 마이크 등 인풋을 위한 AVCatureDevice 객체 준비

▪ 인풋 포트를 설정할 AVCaptureInput 서브클래스 객체 준비

▪ 아웃풋을 위한 AVCaptureOutput 서브클래스 객체 준비

▪ 인풋으로부터 아웃풋로의 데이터 플로우를 만들
AVCaptureSession 객체 준비
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/
04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW2
NHN	NEXT	Eunjoo	Im
오디오 녹음/

비디오 녹화

(2)
▪ AVCaptureConnection: 인풋과 아웃풋 사이의 커넥션

▪ (주의: Media Capture로 전면 카메라와 후면 카메라를 동
시에 캡쳐할 수는 없음)
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/
04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW2
NHN	NEXT	Eunjoo	Im
오디오 녹음/

비디오 녹화

(3)
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/
04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW2
▪ 인풋에서 아웃풋으로의 데이터 플로우를 만드는 AVCaptureSession 객체 생
성

▪ 필요한 인풋 타입의 AVCaptureDevice 객체 찾기

▪ 기기를 위한 AVCaptureDeviceInput 객체 생성

▪ 비디오 파일을 만드는 AVCaptureMovieFileOutput 객체 생성

▪ AVCaptureFileOutputRecordingDelegate 객체의

델리게이트 구현

▪ 녹화 시작: [AVCaptureMovieFileOutput
startRecordingToOutputFileURL:recordingDelegate:]

▪ 녹화 종료: [AVCaptureMovieFileOutput stopRecording]
<AVAsset Playback simple example>

https://github.com/luvgaram/AVFoundation_Example/tree/master/
AVCam-iOSUsingAVFoundationtoCaptureImagesandMovies
NHN	NEXT	Eunjoo	Im
참고

자료
https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/
AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188-CH1-SW3
AVFoundation Programming Guide
https://developer.apple.com/library/prerelease/content/samplecode/AVCam/
Introduction/Intro.html
AVCam-iOS: 

Using AVFoundation to Capture Images and Movies
NHN	NEXT	Eunjoo	Im
Thank	
You

More Related Content

Similar to Av foundation record

처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차Michael Yang
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)NAVER D2
 
OpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid CloudOpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid CloudDennis Hong
 
공감세미나 성능테스트
공감세미나 성능테스트공감세미나 성능테스트
공감세미나 성능테스트Lim SungHyun
 
Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"
Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"
Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"Lablup Inc.
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Jonathan Jeon
 
Eclipse basic(조현종)
Eclipse basic(조현종)Eclipse basic(조현종)
Eclipse basic(조현종)cho hyun jong
 
about IPhone and Mac OS X
about IPhone and Mac OS Xabout IPhone and Mac OS X
about IPhone and Mac OS XJisu Park
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현병태 정
 
5-2. html5 multimedia
5-2. html5 multimedia5-2. html5 multimedia
5-2. html5 multimediaJinKyoungHeo
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
웹캣소개서 (스마트교육연구소)
웹캣소개서 (스마트교육연구소)웹캣소개서 (스마트교육연구소)
웹캣소개서 (스마트교육연구소)tekville2
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 
숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1Alex Kang
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 

Similar to Av foundation record (20)

처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
 
OpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid CloudOpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid Cloud
 
공감세미나 성능테스트
공감세미나 성능테스트공감세미나 성능테스트
공감세미나 성능테스트
 
Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"
Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"
Lablupconf session4 "스토리지 솔루션 입출력 파이프라인 가속화와 개발 범위 간의 균형 잡기"
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
 
Eclipse basic(조현종)
Eclipse basic(조현종)Eclipse basic(조현종)
Eclipse basic(조현종)
 
Eclipse RCP 2/2
Eclipse RCP 2/2Eclipse RCP 2/2
Eclipse RCP 2/2
 
about IPhone and Mac OS X
about IPhone and Mac OS Xabout IPhone and Mac OS X
about IPhone and Mac OS X
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현
 
5-2. html5 multimedia
5-2. html5 multimedia5-2. html5 multimedia
5-2. html5 multimedia
 
Unity소개
Unity소개Unity소개
Unity소개
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
웹캣소개서 (스마트교육연구소)
웹캣소개서 (스마트교육연구소)웹캣소개서 (스마트교육연구소)
웹캣소개서 (스마트교육연구소)
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1
 
Rainbow Movie
Rainbow MovieRainbow Movie
Rainbow Movie
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 

Av foundation record