H.264

VideoToolBox iOS8.0推出 同期block也推出出来了
VideoToolBox工作流程 VideoToolBox基于Core Foundation库函数,c语言 创建session——>设置编码相关参数——>开始编码——>循环输入源数据(yuv类型的数据,直接从摄像头获取)——>获取编码后的H264数据——>结束编码

CMSampleBuffer编码格式

  • CMTime 时间戳
  • CMVideoFormatDesk 图像存储方式
  • CMPixelBuffer编码后 CVPixelBuffer编码前
H.264_第1张图片
CMSampleBuffer.png

(1)第一位为禁位
(2)第2-3位为参考级别
(3)第4-8位为nal单元类型

  • SPS序列参数集
  • PPS图像参数集
    SPS & PPS信息参数
    编码所有的Profile、level、图像的宽和高、deblock录波器......
    H264码流中第一个NALU是SPS&PPS

时间和空间的相似性对数据进行压缩
视频编码格式H.264

代码流程

  • 简单UI
  • 配置 AV Foundation捕捉回话
  • 配置 VideoToolBox
  • 开始捕捉
  • AV Foundation捕捉到视频
  • 停止捕捉
  • 结束AV Foundation

直播app核心框架如下图:

H.264_第2张图片
直播核心框架.png
H.264_第3张图片
视频.png
H.264_第4张图片
屏幕快照 2017-08-02 下午3.33.19.png
H.264_第5张图片
关键帧.png

如果没有关键帧是无法解析的。

一个视频里面包含多个GOP

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