格式

  • Annex-B
  • AVCC(H.264) 和 HVCC

Annex-B

Annex-B格式 也叫MPEG-2 transport stream format格式(ts格式), ElementaryStream格式。

AVCC(H.264)

AVCC格式 也叫AVC1格式,MPEG-4格式,字节对齐,因此也叫Byte-Stream Format。用于mp4/flv/mkv, VideoToolbox。

结构

结构主要有两点区别:

  1. SPS和PPS的组织格式
  2. 数据分隔方式不同

Annex-B -结构

  1. SPS和PPS按照流的方式写在头部,一般位于IDR帧之前的位置
  2. 采用start code分隔NAL(start code为三字节或四字节,0x000001或0x00000001,一般是四字节);

AVCC -结构

  1. 在头部包含或则固定的位置包含SPS PPS等信息,如flv是在第一个视频tag的avc_decoder_configuration_record中包含
  2. 使用NAL的长度(固定为4字节)分隔NAL

Why?

统一的格式不香吗?为啥要搞几种?
原因在于媒体可分为本地文件和直播流

  • 如果是本地文件,则我们只需要读取一次SPS,PPS的信息,然后就可以一直进行解码了,所以将SPS PPS等信息放到文件的头部,打开文件,先读取这些信息初始化解码器,然后就可以顺利的解码了;其次本地文件不存在丢包或则中途进入一说,所有按照格式读取的话肯定能读取到NAL头的长度,所以像FLV,MP4,MKV这些常用的本地存储方式都用的AVCC封装。
  • 如果是直播流,那我们如果放到头部的话,中途播放的用户是无法接收到SPS PPS信息,无法初始化解码器,所以必须每隔一段时间发送一次SPS PPS等信息,一般是放在IDR帧之前进行发送,所以如mpeg-ts 这种常用的直播流就是使用Annex-B结构

mpeg-ts

flv

Annex-B和AVCC相关推荐

  1. H.264 NALU分隔Annex B和avcC

    文章目录 分隔格式 Annex B avcC 编解码器的输入输出分隔符类型 分隔格式 H.264常用的分隔方式有Annex B和avcC Annex B 这种分隔符通常用于视频会议还有文件存储例如TS ...

  2. H264 Annex B 与 AVCC的区别

    本文链接:https://blog.csdn.net/Romantic_Energy/article/details/50508332 首先要理解的是没有标准的H.264基本流格式.文档中的确包含了一 ...

  3. H264码流的两种形式:Annex B和AVCC

    https://blog.csdn.net/qq_15457239/article/details/100545520 https://blog.csdn.net/romantic_energy/ar ...

  4. (推荐阅读)H264, H265硬件编解码基础及码流分析

    需求 在移动端做音视频开发不同于基本的UI业务逻辑工作,音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,v ...

  5. H.264笔记整理3

    H.264整理3 转自:http://www.hellotongtong.com/avcodecbase/avcodecbase-h264-learning120.html 需求 在移动端做音视频开发 ...

  6. H264H265格式

    文章目录 H264 1. NALU 1.1 NALU Header 1.1.1 nal_unit_type 2. 码流格式 2.1 Annex B格式 2.2 AVCC格式 2.2.1 extrada ...

  7. iOS VideoToolbox 硬编指南

    引言 调用系统 VideoToolbox 的 API 实现一个硬编很容易,仔细看看文档.了解 API 的使用实现一个基本功能相信难不倒大家.但实际工作中有许多细节,一不注意就会掉坑里,甚至有些系统性问 ...

  8. FFmpeg之视频封装格式、流媒体协议、视频编解码协议和传输流格式、时间戳和时间基、视频像素数据

    通用视频分析工具:Mediainfo.Elecard StreamEye(视频编码分析工具); 视频封装格式: ********************MP4****************** MP ...

  9. 应用角度理解H264码流

    应用角度理解H264码流 前言 1.NAL 2.SPS.PPS 2.1 SPS 2.2 PPS 3.Slice&MB 3.1.Slice 3.2.MB 4.RTP负载 5.AUD 6.文献 前 ...

  10. H.264流媒体协议格式中的Annex B格式和AVCC格式深度解析

    版权声明:本文为CSDN博主「Chucky_Hu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/Roma ...

最新文章

  1. 第一课.python入门与环境介绍
  2. 清理Oracle安装目录里的一些日志信息
  3. 表单令牌阻止数据重复提交
  4. python安装第三方库太慢_Python 安装第三方库 pip install 安装慢安装不上的解决办法...
  5. EAT/IAT Hook
  6. Ubuntu 8.04 Linux + Apache2 + MySQL5 + PHP + Tomcat5.5 整合安装
  7. paip.提升安全性--360,WI,AWVS三款WEB程序安全检测软件使用总结
  8. mysql数据库的属性_mysql 数据库属性
  9. 习题4-6 莫尔斯代码(Morse Mismatches,ACM/ICPC World Finals 1997,UVa508)
  10. ACPI\VEN_LENDEV_0078[未知设备]
  11. 计算机重启 ie 被改,ie被修改怎么办 ie被修改的解决方法【详解】
  12. 9.17xiecheng面试总结
  13. 年轻人,劝你不要做前端
  14. 微博爬虫及简单数据分析
  15. 数据质量测试:测试数据有效性和准确性的方法
  16. ae正在发生崩溃_AE崩溃了怎么办?这可能是最全面的解决办法了!
  17. 实验七 H.264编码实验
  18. HDU 2977 Color Squares BFS
  19. 美中嘉和赴港IPO背后:毛利率大幅下滑,杨建宇控股2家公司均亏损
  20. 计算机南方电网试题,南方电网考试真题

热门文章

  1. 电磁场仿真试验【Matlab】电磁波极化仿真
  2. 数据结构、数据、数据元素、数据项的区别
  3. 手机数据恢复的经历和过程
  4. C语言求两个正整数的最小公倍数
  5. python自学成才之路 miniconda创建虚拟环境
  6. python 抓包秒杀_Python 爬虫,推荐一款简单的抓包工具(续)
  7. 隐藏与显示桌面上的单个图标
  8. dva自定义组件及使用方法
  9. 【python】global详解
  10. Mysql数据丢失分析与数据恢复