-
Overview

-
AVSampleBufferDisplayLayer
- iOS 8에 추가되었다.
- 압축된 프레임 시퀀스를 CMSampleBuffer로 감싸서 입력을 받는다.
- 내부적으로 video decoder가 있어서 이 프레임들을 CVPixelBuffer 형태로 디코딩하고 이를 큐에 넣으면 적절한 시점에 보여준다.
-
근데 네트워크로 받으니 처음부터 CMSampleBuffer 형태가 아니다. 그래서 가공을 해야한다.
- H.264 스펙에서 정의하는 몇가지 패키징 방법이 있다.
- Elementary Stream packaging
- MPEG-4 packaging
- 동영상 파일과 mp4 파일등에 사용
- CMSampleBuffer를 다루는 Core Media와 AVFoundation은 이걸로 패키징 된 데이터만 받아들일 수 있다.
-
H.264 스트림 심층 분석
- 스트림은 NAL(Network Abstraction Layer) Unit으로 패키징된 블록의 시퀀스로 이루어져있다.
- 비디오 프레임은 하나의 NAL Unit에 담길수도 있고, 여러 NAL Unit에 걸쳐서 존재할 수도 있다.
- 비디오 프레임 뿐 아니라 매개변수 집합도 가질 수 있다.
-
두 패키징 방법의 차이
-
AVSampleBufferDisplayLayer와 시간
-
AVSampleBufferDisplayLayer에 CMSampleBuffer 제공하기