H.264边学边记

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

H.264边学边记_第1张图片
选摘1

H.264边学边记_第2张图片
选摘2
H.264边学边记_第3张图片
选摘3
H.264边学边记_第4张图片
选摘4
H.264边学边记_第5张图片
选摘5
H.264边学边记_第6张图片
选摘6
H.264边学边记_第7张图片
选摘7
H.264边学边记_第8张图片
选摘8
H.264边学边记_第9张图片
选择9

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

H.264边学边记_第10张图片
将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;

H.264边学边记_第11张图片
CMSampleBuffer的结构:可以包含已压缩数据(CMBlockBuffer)或未压缩数据(CVPixelBuffer)及相关描述信息

3、AVKit

相关链接

你可能感兴趣的:(H.264边学边记)