H.264码流解析

ops/2024/9/25 8:25:04/

这一篇内容旨在对H.264码流中的一些概念做简单了解。

1、概念了解

VCL:Video Coding Layer视频编码层,它是H.264AVC)编码中的核心,负责视频数据的编码工作。VCL层会应用一系列的图像压缩技术,如预测编码、变换编码、量化、熵编码等,将原始视频数据压缩成二进制比特流,压缩生成的比特流也被称为原始数据比特流SODB(String of Data Bits)

NAL:Network Abstraction Layer网络抽象层,将SODB打包封装便于网络传输,里面有如下内容需要做了解:

  • 网络传输一般是以字节为单位,但是SODB的长度不一定是整数字节,所以第一步是要把SODB扩充为整数字节,扩充后的数据被称为RBSP(Raw Byte Sequence Payload)。扩充方式是在SODB的末尾添加一个比特位1,如果数据仍不是整数字节,则在末尾添加比特位0,直到数据变成整数字节。

    • 假设我们原始的SODB是一个7位的二进制数据1001100,将它转化为RBSP时,我们会首先在尾部添加1得到10011001,长度变成8,所以不需要再添加0。

    • 如果原始的SODB是一个10位的二进制数据1001100110,将它转化为RBSP时,我们会首先在尾部添加1得到10011001101,长度变成11,需要再添加5个0,最后的RBSP为100110011


http://www.ppmy.cn/ops/32373.html

相关文章

MySQL①——数据库与表格的创建

今日任务: 创建一个名为“db_classes”的数据库 创建一行名为“db_hero”的表 将四大名著中的常见人物插入这个英雄表 数据库的创建与删除 create 命令(创建): create database 数据库名;#参数默认create database …

使用RTSP将笔记本摄像头的视频流推到开发板

一、在Windows端安装ffmpeg 1. 下载ffmpeg:下载ffmpeg 解压ffmpeg-master-latest-win64-gpl.zip bin 目录下是 dll 动态库 , 以及 可执行文件 ;将 3 33 个可执行文件拷贝到 " C:\Windows " 目录下 ,将所有的 " .dll " 动态库拷贝到 " C:\Windows\Sy…

安装k8s

Kubernetes是一个开源系统,用于容器化应用的自动部署、扩缩和管理。它将构成应用的容器按逻辑单位进行分组以便于管理和发现。 由于 Kubernetes 官方变更了仓库的存储路径以及使用方式,如果需要使用 1.28 及以上版本,请使用 新版配置方法 进…

记一次从登录框到前台rce

接口未授权挖掘 在网站未登录的情况下,由于不知道后台接口。唯一办法通过js文件、路径扫描。通过这种收集方式使用burp进行批量扫描,分别探测GET/POST请求。观察响应包跟状态码。判断响应包,确定存在未授权后,再构造数据包。 2 突…

FloodFill-----洪水灌溉算法(DFS例题详解)

目录 一.图像渲染: 代码详解: 二.岛屿数量: 代码详解: 三.岛屿的最大面积: 代码详解: 四.被围绕的区域: 代码详解: 五.太平洋大西洋水流问题: 代码详解&#x…

etcd源码流程---调试环境的搭建

etcd启动命令: name必须设置,否则会用default,集群内不同etcd实例的名字应该是唯一的,因为他会有一个map(name->ip)。如果initial-cluster-state设置为new,那么他会创建一个新的clusterid。需要在initial-cluster中…

K8s: Prometheus 监控主机 和 K8s 集群

Prometheus 监控主机 和 K8s 集群 1 )搭建 Prometheus 创建对应 ServiceAccount 达成角色访问的目的,避免所有人都能看到 创建配置相关的 configmap 定义了一堆的任务,收集各个层面的监控数据 创建告警规则相关的configmap 比如内存大于 75%…

初识Vue-组件通信(详解props和emit)

目录 一、组件通信介绍 1.概念 2.作用 3.特点 4.应用 二、组件通信语法 1.Props 1.1.在子组件中声明 props 1.2.在父组件中传递数据 2.Emit 2.1.在子组件中触发事件 2.2.在父组件中监听事件 三、应用实例 1. 购物车组件 2. 表单数据处理 四、总结 一、组件通信介…