这个是选摘张张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和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;
CMSampleBuffer的结构:可以包含已压缩数据(CMBlockBuffer)或未压缩数据(CVPixelBuffer)及相关描述信息







网友评论