H265码流格式
一、H265码流格式
VPS:视频参数集,用于传输视频分级信息,有利于兼容标准在可分级视频编码或多视点视频的扩展。
NALU header定义:
| NALU header(){ | Descriptor |
| forbidden_zero_bit | f(1) |
| nalu unit type | u(6) |
| nuh_layer_id | u(6) |
| nuh_temporal_id_plus1 | u(3) |
H264的NALU type是首字节&0x1f,H265的NALU type是(首字节&0x7E)>>1;
NALU type定义:
/**
* Table 7-3: NAL unit type codes
*/
enum HEVCNALUnitType {
HEVC_NAL_TRAIL_N = ,
HEVC_NAL_TRAIL_R = ,
HEVC_NAL_TSA_N = ,
HEVC_NAL_TSA_R = ,
HEVC_NAL_STSA_N = ,
HEVC_NAL_STSA_R = ,
HEVC_NAL_RADL_N = ,
HEVC_NAL_RADL_R = ,
HEVC_NAL_RASL_N = ,
HEVC_NAL_RASL_R = ,
HEVC_NAL_VCL_N10 = ,
HEVC_NAL_VCL_R11 = ,
HEVC_NAL_VCL_N12 = ,
HEVC_NAL_VCL_R13 = ,
HEVC_NAL_VCL_N14 = ,
HEVC_NAL_VCL_R15 = ,
HEVC_NAL_BLA_W_LP = ,
HEVC_NAL_BLA_W_RADL = ,
HEVC_NAL_BLA_N_LP = ,
HEVC_NAL_IDR_W_RADL = ,
HEVC_NAL_IDR_N_LP = ,
HEVC_NAL_CRA_NUT = ,
HEVC_NAL_IRAP_VCL22 = ,
HEVC_NAL_IRAP_VCL23 = ,
HEVC_NAL_RSV_VCL24 = ,
HEVC_NAL_RSV_VCL25 = ,
HEVC_NAL_RSV_VCL26 = ,
HEVC_NAL_RSV_VCL27 = ,
HEVC_NAL_RSV_VCL28 = ,
HEVC_NAL_RSV_VCL29 = ,
HEVC_NAL_RSV_VCL30 = ,
HEVC_NAL_RSV_VCL31 = ,
HEVC_NAL_VPS = ,
HEVC_NAL_SPS = ,
HEVC_NAL_PPS = ,
HEVC_NAL_AUD = ,
HEVC_NAL_EOS_NUT = ,
HEVC_NAL_EOB_NUT = ,
HEVC_NAL_FD_NUT = ,
HEVC_NAL_SEI_PREFIX = ,
HEVC_NAL_SEI_SUFFIX = ,
};
二、丢帧
在性能不足,或者音画不同步时,需要进行丢帧,H264丢帧根据nal_ref_idc来判断,H265根据来NALU type判断。以下type是可以丢帧,且不花屏的:HEVC_NAL_TRAIL_N、HEVC_NAL_TSA_N、HEVC_NAL_STSA_N、HEVC_NAL_RADL_N、HEVC_NAL_RASL_N。
H265码流格式的更多相关文章
- H.264/H265码流解析
H.264/H265码流解析 一.H.264码流解析 一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成 一个原始的 ...
- H265码流分析
H265相比较于H264,除了包含SPS.PPS外,还多包含一个VPS:在NALU header上,H.264的HALU header是一个字节,而H.265则是两个字节. 以OX4001为例,头信息 ...
- 【知识点】H264, H265硬件编解码基础及码流分析
前言 音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大 ...
- 嵌入式 H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
一.MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二.MP4封装格式核心概念 1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象 ...
- 【视频编解码·学习笔记】4. H.264的码流封装格式
一.码流封装格式简单介绍: H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流.对于不同的应用场景,NAL规定了一种通 ...
- [转]【流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
[流媒體]H264—MP4格式及在MP4文件中提取H264的SPS.PPS及码流 SkySeraph Apr 1st 2012 Email:skyseraph00@163.com 一.MP4格式基本 ...
- 【视频编解码·学习笔记】4. H.264的码流封装格式 & 提取NAL有效数据
一.码流封装格式简单介绍: H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流.对于不同的应用场景,NAL规定了一种通 ...
- 多媒体开发之---H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
一.MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二.MP4封装格式核心概念 1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象 ...
- 利用ffmpeg0.6.1把.h264纯码流打包成.mp4 .avi等格式 (转载)
转自:http://cache2.weidaohang.org/h/index.php?q=aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1cWluZ183MzkvYXJ0aWNsZS ...
随机推荐
- centos启动排障
centos6 启动引导第一阶段破坏 破坏mbr前446字节 先备份 [root@centos6 ~]# dd if=/dev/sda of=/root/mbr bs=1 count=446 破坏 [ ...
- 如何查看Nginx安装了哪些模块
当你要编译安装Nginx时,在你执行完./configure之后,会在这个目录生成一个objs这个目录. 进入objs目录下,会看到有一个ngx_modules.c这个文件,这个文件里都是要编译进Ng ...
- Python处理字符串和列表元组的小技巧
变量值互换 a = 1 b = 100 # 变量值互换 a, b = b, a print('a:', a) print('b:', b) 输出结果: a: 100 b: 1 多个变量赋值 a, b, ...
- python装饰器使用详解
装饰器 '''装饰器:就是闭包(闭包的一个应用场景) -- 把要被装饰的函数作为外层函数的参数通过闭包操作后返回一个替代版函数 优点: -- 丰富了原有函数的功能 -- 提高了程序的可拓展性''' 开 ...
- linux文件权限更改命令chmod及数字权限实践总结
改变权限属性命令chmod chmod 是用来改变文件或目录权限的命令,但只有文件的属主和超级用户root才有这种权限.通过chmod来改变文件或目录的权限有两种方法:一种是通过权限字母和操作符表达 ...
- 第七周课程总结&实验报告(五)
实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. ...
- Capacity To Ship Packages Within D Days
A conveyor belt has packages that must be shipped from one port to another within D days. The i-th p ...
- 有关java5以后的线程
创建线程的方式 方式一 继承于Thread类 /** * 多线程的创建,方式一:继承于Thread类 * 1. 创建一个继承于Thread类的子类 * 2. 重写Thread类的run() --> ...
- 屹今为止最好用的HTTP客户端命令行工具-接口调试神器HTTPie
一.思考❓❔ 1.你用过哪些http客户端调试工具? Postman 不够灵活 需要打开客户端, 麻烦 学习成本高 Jmeter 臃肿 麻烦 学习成本高 curl 参数多, 记不住 不够灵活 主要在L ...
- C/S软件方案
互联网时代客户端软件的一些方案 纯Native开发, C++/C#/duilib+C++(Windows), Objective-c(Mac) Qt(Windows/Mac) NW.js/Electr ...