07-视频流H264的组装

本文深入介绍了H264编码标准,包括其码流的组成、编码分层和传输过程。H264通过NAL层和VCL层实现高效的数据组织和网络传输,使用Annex-B字节流格式作为主要传输标准。内容涵盖了从宏块到视频序列的层次结构,解析了NAL单元和切片头等关键元素,为理解H264码流提供了清晰的框架。
摘要由CSDN通过智能技术生成

视频流H264的组装

1 H264介绍

我们了解了什么是宏快,宏快作为压缩视频的最小的一部分,需要被组织,然后在网络之间做相互传输。

​ 如果单纯的用宏快来发送数据是杂乱无章的,就好像在没有集装箱 出现之前,货物总是随意被堆放到船上。

上货,下货是非常痛苦的。 当集装箱出现之后,一切都发生了改变,传输效率大大增高。

​ 集装箱可以理解成H264编码标准,他制定了相互传输的格式,将宏快 有组织,有结构,有顺序的形成一系列的码流。这种码流既可 通过 InputStream 网络流的数据进行传输,也可以封装成一个文件进行保存

**H264: H264/AVC是广泛采用的一种编码方式。**主要作用是为了传输

1.1 H264码流组成

组成H264码流的结构中 包含以下几部分 ,从大到小排序依次是

H264视频序列,图像,片组,片,NALU,宏块 ,像素。

类似 地球 国家 城市 镇 村落

66

1.1.1 H264编码分层
  • NAL层:(Network Abstraction Layer,视频数据网络抽象层): 它的作用是H264只要在网络上传输,在传输的过程每个包以太网是1500字节,而H264的帧往往会大于1500字节,所以要进行拆包,将一个帧拆成多个包进行传输,所有的拆包或者组包都是通过NAL层去处理的。
  • VCL层:(Video Coding Layer,视频数据编码层): 对视频原始数据进行压缩
1.1.2 H264的传输

H264是一种码流 类似与一种不见头,也不见尾的一条河流。如何从和流中取到自己想要的数据呢,

在H264的标砖中有这样的一个封装格式叫做"Annex-B"的字节流格式。 它是H264编码的主要字节流格式。

几乎市面上的编码器是以这种格式进行输出的。起始码0x 00 00 00 01 或者 0x 00 00 01 作为分隔符

两个 0x 00 00 00 01之间的字节数据 是表示一个NAL Unit

67

1.1.3 编码结构

68
切片头:包含了一组片的信息,比如片的数量,顺序等等

1.1.4 H264码流分层结构图

69

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值