P2 H264码流结构分析——Annexb与MP4格式的区别 (中)

news2025/4/25 22:28:26

目录

 前言

01 Annexb格式

02 RTP格式(也叫MP4格式)


 前言

                             

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板

🎬 个人主页:@ChenPi

🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨ 

🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨

🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客》
🌺本篇简介  :这章记录编解码的基础理论知识——H264的码流结构

这章我们以一下这个图来讲解H264的码流结构

这个图是我从网上找的 

我们按照这个层级关系来学

 

01 Annexb格式

Annexb 格式使用起始码来表示一个编码数据的开始。

起始码他本身不是图像编码的内容,只是用来分隔用的,

而且他是大多数编码器默认输出 的码流格式,它的基本数据单位为NAL单元,也即NALU

为了从字节流中提取出NALU,协议规定,在每个NALU的前面加上起始码 。起始码有两

种,一种是 4 字节的“00 00 00 01”,一种是 3 字节的“00 00 01”。

这里需要注意一下,由于图像编码出来的数据中也有可能出现“00 00 00 01”和“00 00 01”的数据。

那这种情况怎么办呢?为了防止出现这种情况

H264会将图像编码数据中的下面的几种字节串做如下处理:

(1)“00 00 00”修改为“00 00 03 00”;

(2)“00 00 01”修改为“00 00 03 01”;

(3)“00 00 02”修改为“00 00 03 02”;

(4)“00 00 03”修改为“00 00 03 03”。

H264比特流 = Start_Code_Prefix + NALU + Start_Code_Prefix + NALU + …

这里也说一下为什么需要起始码?

主要是为了将相邻两个NALU划分开,让他们有一个界线,方便解码,比如将h264的数据存储在一个文件当中,解码器无法从数据流中分别每个NALU的起

始位置。 

02 RTP格式(也叫MP4格式)

MP4 格式没有起始码,而是在图像编码数据的开始使用了 4 个字节作为长度标识,用来表示编码数据的长度,这样我们每次读取 4 个字节,计 算出编码数据长度,然后取出编码数据,再继续读取 4 个字节得到长度,一直继续下去就可以取出所有的编码数据了。

h264的字节流格式,它是没有经过传输协议封装,所以也可以称他为裸流数据!

下一章我们重点讲解这个码流格式里面的NALU单元,也就是我们在本地拿到一个以.264格式的视频文件,我们首先去提取里面的NALU,这个才是重 点!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1331221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

干洗店预约上门取货小程序与互联网洗鞋店小程序开发制作功能方案

干洗店预约上门取货小程序与互联网洗鞋店小程序开发制作功能方案 一、洗衣洗鞋店小程序功能 1. 预约订单:忙碌时,您可以使用预约功能轻松获取洗衣服务。 2. 在线下单:用户可直接通过小程序在线下单,享受专人上门取货与配送服务。…

钓鱼实战篇

之前说的只是一些点,真正的攻击是需要自己针对目标定制一套适用的钓鱼方式的。 这里提了提高成功率,我选取了我们班某位可爱的同学作为测试,首先通过一些话语让她产生好奇心。 然后制作一个类似的求爱视频的网站给她: 后面通过发送网址给她:…

【零基础入门Docker】什么是Dockerfile Syntax

✍面向读者:所有人 ✍所属专栏:零基础入门Docker专栏https://blog.csdn.net/arthas777/category_12455882.html 目录 编写Dockerfile和Format的语法 2. MAINTAINER 3. RUN 4. ADD 6. ENTRYPOINT 7. CMD 8. EXPOSE 9. VOLUME 11. USER 12. ARG …

【数据结构入门精讲 | 第十篇】考研408排序算法专项练习(二)

在上文中我们进行了排序算法的判断题、选择题的专项练习,在这一篇中我们将进行排序算法中编程题的练习。 目录 编程题R7-1 字符串的冒泡排序R7-1 抢红包R7-1 PAT排名汇总R7-2 统计工龄R7-1 插入排序还是堆排序R7-2 龙龙送外卖R7-3 家谱处理 编程题 R7-1 字符串的冒…

Unreal5.3 PCG 笔记

目录 ElectricDreams场景功能移动中间山体向周围随机生成倒下的树干树干上随机生成的植被 ElectricDreams场景功能 移动中间山体向周围随机生成倒下的树干 配置内容 中心山体Spline周围沟渠Spline(土堆)PCG规则 主要功能节点 SplineSample(…

屏幕颜色吸取器

前言 屏幕颜色吸取器。 前端工程师的福音,获取全屏幕上所有位置的颜色。 运行在window上的软件 屏幕颜色吸取器 前言1 下载解压2 使用 1 下载解压 下载地址:https://download.csdn.net/download/qq_44850489/11943229 下载下来之后解压 如下图&#…

【SVN】centos7搭建svn--亲测能通

centos7.6搭建svn 1 知识小课堂1.1 CentOS1.2 SVN 2 搭建过程2.1 前期准备2.2 通过yum命令安装svnserve2.3 创建版本库目录2.4 创建svn版本库2.5 配置修改2.5 防火墙配置2.6 启动或关闭svn服务器2.6.1 进程守护2.6.2 检测svn端口3690是否已经监听:2.6.3 关闭SVN 2.7…

计算机组成原理——指令系统41-60

41、下列哪种指令不属于程序控制指令(C)。 A、 无条件转移指令 B、 条件转移指令 C、 中断隐指令 D、 循环指令 42、下列关于一地址运算类指令的叙述中,正确的是(B)。 A、 仅有一个操作数,其地址由指令…

Linux多线程:线程池(单例),读写锁

目录 一、线程池(单例模式)1.1 makefile1.2 LockGuard.hpp1.3 log.hpp1.4 Task.hpp1.5 Thread.hpp1.6 ThreadPool.hpp1.7 main.cc 二、STL,智能指针和线程安全2.1 STL中的容器是否是线程安全的?2.2 智能指针是否是线程安全的? 三、其他常见的各种锁四、…

讲座思考 | 周志华教授:新型机器学习神经元模型的探索

12月22日,有幸听了南京大学周志华教授题为“新型机器学习神经元模型的探索”的讲座。现场热闹非凡,大家像追星一样拿着“西瓜书”找周教授签名。周教授讲得依旧循循善诱,由浅入深,听得我很入迷,故作此记。 周教授首先就…

大语言模型的三种主要架构 Decoder-Only、Encoder-Only、Encoder-Decoder

现代大型语言模型(LLM)的演变进化树,如下图: https://arxiv.org/pdf/2304.13712.pdf 基于 Transformer 模型以非灰色显示: decoder-only 模型在蓝色分支, encoder-only 模型在粉色分支, encod…

关于Triple DES(3DES)对称加密算法

一、引言 在网络安全领域,对称加密算法作为一种常见的加密手段,被广泛应用于保障数据传输的保密性和完整性。其中,DES(Data Encryption Standard)算法作为一种经典的对称加密算法,由IBM于1970年代开发&…

041_小驰私房菜_MTK平台添加支持通过原生Camera API接口调用UsbCamera

平台:MTK 问题:通过调用Android Camera API去调用UsbCamera,需要做哪些修改? Google官方文档,关于usbcamera的支持: 外接 USB 摄像头 | Android 开源项目 | Android Open Source Project 相关修改内容如下: 一、MTK平台支持通过标准接口打开USB Camera 1)device相…

铭飞CMS cms/content/list接口存在SQL注入 附POC

@[toc] 铭飞CMS cms/content/list接口存在SQL注入 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用…

OSI 七层参考模型及TCP/IP 四层模型

OSI 七层参考模型 七层模型,亦称 OSI ( Open System Interconnection )参考模型,即开放式系统互联。参考模型是国际标准化组织(ISO )制定的一个用于计算机或通信系统间互联的标准体系,一般称为…

红队打靶练习:DIGITALWORLD.LOCAL: MERCY V2

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 6、总结 目录探测 1、gobuster 2、dirsearch WEB enum4linux枚举工具 smbclient工具 knock工具 CMS 文件包含漏洞 Tomcat 提权 系统信息收集 本地提权 get root 信息收集 1、arp ┌──…

解决用Fiddler抓包,网页显示你的连接不是专用/私密连接

关键:重置fiddler的证书 在Fiddler重置证书 1、Actions --> Reset All Certificates --> 弹窗一路yes 2、关掉Fiddler,重新打开 3、手机删掉证书,重新下载安装。 (如果还不行,重新试一遍,先把浏览器…

stable diffusion工作原理

目录 序言stable diffusion能做什么扩散模型正向扩散逆向扩散 如何训练逆向扩散 Stable Diffusion模型潜在扩散模型变分自动编码器图像分辨率图像放大为什么潜在空间可能存在?在潜在空间中的逆向扩散什么是 VAE 文件? 条件化(conditioning)文本条件化&am…

HTML+CSS做一个时尚柿子造型计时器

文章目录 💕效果展示💕代码展示HTMLJS💕效果展示 💕代码展示 HTML <!DOCTYPE html> <html lang

天文观测与计算机技术:粉丝的视角

天文观测与计算机技术&#xff1a;粉丝的视角 在浩瀚无垠的宇宙中&#xff0c;每一颗星星都像是神秘的密码&#xff0c;等待我们去破译。作为天文观测的粉丝&#xff0c;我深知每一个美丽的星图背后都离不开计算机技术的支持。在这篇文章中&#xff0c;我将分享我对天文观测与…