这个是选摘张张H.264介绍,对他做了一些注释。
将vcl保存在nal中,方便传送码流结构
H.264的功能分为两层,视频编码层(VCL)和网络提取层(NAL)VCL数据即被压缩编码后的视频数据序列。在VCL数据要封装到NAL单元中之后,才可以用来传输或存储。
iOS与H.264
1.相关框架
AVKit
AVFoundation
Video Toolbox
Core Media
Core Video
其中的AVKit和AVFoudation
、VideoToolbox
都是使用硬编码和硬解码。
2.相关类介绍
CVPixelBuffer
: 包含未压缩的像素数据,包括图像宽度、高度等;
CVPixelBufferPool
: CVPixelBuffer
的缓冲池,因为CVPixelBuffer
的创建和销毁代价很大;
pixelBufferAttributes
: CFDictionary
包括宽高、像素格式(RGBA、YUV)、使用场景(OpenGL ES
、Core Animation
)
CMTime
: 64位的value
,32位的scale
,media
的时间格式;
CMVideoFormatDescription
: video
的格式,包括宽高、颜色空间、编码格式等;对于H.264的视频,PPS
和SPS
的数据也在这里;
CMBlockBuffer
:编码后图像的数据结构
CMSampleBuffer
: 存放一个或者多个压缩或未压缩的媒体文件;
CMClock
:时间源
CMTimebase
:时间控制器,可以设置rate和time;
网友评论