H.264边学边记

这个是选摘张张H.264介绍,对他做了一些注释。

选摘1

选摘2
选摘3
选摘4
选摘5
选摘6
选摘7
选摘8
选择9

码流结构
H.264的功能分为两层,视频编码层(VCL)和网络提取层(NAL)VCL数据即被压缩编码后的视频数据序列。在VCL数据要封装到NAL单元中之后,才可以用来传输或存储。

将vcl保存在nal中,方便传送

iOS与H.264

1.相关框架

AVKit
AVFoundation
Video Toolbox
Core Media
Core Video

其中的AVKit和AVFoudationVideoToolbox都是使用硬编码和硬解码

2.相关类介绍

CVPixelBuffer: 包含未压缩的像素数据,包括图像宽度、高度等;
CVPixelBufferPoolCVPixelBuffer的缓冲池,因为CVPixelBuffer的创建和销毁代价很大;
pixelBufferAttributesCFDictionary包括宽高、像素格式(RGBA、YUV)、使用场景(OpenGL ESCore Animation
CMTime: 64位的value,32位的scalemedia的时间格式;
CMVideoFormatDescriptionvideo的格式,包括宽高、颜色空间、编码格式等;对于H.264的视频,PPSSPS的数据也在这里;
CMBlockBuffer:编码后图像的数据结构
CMSampleBuffer: 存放一个或者多个压缩或未压缩的媒体文件;
CMClock:时间源
CMTimebase:时间控制器,可以设置rate和time;

CMSampleBuffer的结构:可以包含已压缩数据(CMBlockBuffer)或未压缩数据(CVPixelBuffer)及相关描述信息

3、AVKit

相关链接

推荐阅读更多精彩内容