H265文件_h265转码工具

H265文件_h265转码工具一、H264格式RBSP=SODB+RBSPtrailingbitsNALU=NALheader(1byte)+RBSPH.264=StartCodePrefix(3bytes)+NALU+StartCodePrefix(3bytes)+NALU+…H.264从层次来看分为两层:视频编码层(VCL,VideoCo…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、H264格式

H265文件_h265转码工具

RBSP = SODB + RBSP trailing bits

NALU = NAL header(1 byte) + RBSP

H.264 = Start Code Prefix(3 bytes) + NALU + Start Code Prefix(3 bytes) + NALU +…

H.264从层次来看分为两层:视频编码层(VCL, Video Coding Layer)和网络提取层(NAL,Network Abstraction Layer)。VCL输出的是原始数据比特流(SODB,String of data bits),表示H.264的语法元素编码完成后的实际的原始二进制码流。SODB通常不能保证字节对齐,故需要补齐为原始字节序列负荷(RBSP,Raw Byte Sequence Payload)。

二、起始码

每个NALU之间由起始码(Start Code Prefix)分隔,起始码分为两种:0x000001(3 bytes) or 0x00000001(4 bytes). 如果NALU 对应的Slice 为一帧的开始,则用4 字节表示,即0x00000001;否则用3 字节表示,0x000001.NALU针对起始码设计了防止冲突机制,如果出现连续的0x000000,0x000001,0x000002,0x000003时,会在两个0之间插入03,如下:

H265文件_h265转码工具

三、NALU头格式

H265文件_h265转码工具

F(禁止位): 1 个比特:

禁止位在编码中默认值为0,当网络识别此单元中存在比特错误时,可将其设为1,以便接收方丢掉该单元,主要用于适应不同种类的网络环境(比如有线无线相结合的环境)。

NRI: 2 个比特:

nal_ref_idc. 取 00 ~ 11, 指示这个 NALU 的重要性, 用于在重构过程中标记一个NAL单元的重要性,值越大,越重要。值为0表示这个NAL单元没有用于预测,因此可被解码器抛弃而不会有错误扩散;值高于0表示此NAL单元要用于无漂移重构,且值越高,对此NAL单元丢失的影响越大。

Type: 5 个比特:

0:未规定

1:非IDR图像中不采用数据划分的片段

2:非IDR图像中A类数据划分片段

3:非IDR图像中B类数据划分片段

4:非IDR图像中C类数据划分片段

5:IDR图像的片段

6:补充增强信息(SEI)

7:序列参数集(SPS)

8:图像参数集(PPS)

9:分割符

10:序列结束符

11:流结束符

12:填充数据

13:序列参数集扩展

14:带前缀的NAL单元

15:子序列参数集

16 – 18:保留

19:不采用数据划分的辅助编码图像片段

20:编码片段扩展

21 – 23:保留

24 – 31:未规定

这用来标识NAL单元中的RBSP数据类型,其中,nal_unit_type为1, 2, 3, 4, 5的NAL单元称为VCL的NAL单元,其他类型的NAL单元为非VCL的NAL单元。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234589.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux用命令dpkg,Linux中dpkg命令起什么作用呢?

    linux用命令dpkg,Linux中dpkg命令起什么作用呢?摘要:下文讲述Linux中dpkg的功能说明,如下所示;dpkg是(Debianpackage英文的缩写)dpkg命令功能:用于管理DebianLinux中的包管理(安装,创建,管理软件)的一种实用性工具dpkg命令的语法格式:dpkg[参数]—–常用参数说明——-i:安装软件包-r:删除软件包-l:输出已安装软件包列表-L:输出于软件包关联的文件-c:输出软件包内文件列表–…

    2022年5月21日
    40
  • tcp洪水攻击_udp编程socket

    tcp洪水攻击_udp编程socket#include/**UDP洪水攻击:不停的向目的主机发送UDP包,让目的主机接收端口拥塞,以达到攻击的目的**/#defineMAXCHILD2#defineK1024#defineDATUML1*KstaticintPROTO_UDP=-1;//UDP协议类型staticunsignedlongdest=0;//目的地址,32位二进制staticintdest_po…

    2022年10月1日
    2
  • Java学习之反射篇

    Java学习之反射篇0x00前言今天简单来记录一下,反射与注解的一些东西,反射这个机制对于后面的java反序列化漏洞研究和代码审计也是比较重要。0x01反射机制概述Java反射是Java非

    2021年12月12日
    49
  • Java打印数组的四种方式「建议收藏」

    Java打印数组的四种方式「建议收藏」1.使用循环结构这里使用的是for循环publicclassPrintArrays{ publicstaticvoidmain(String[]args){ int[]a={1,2,3,4,5}; for(inti=0;i<a.length;i++){ System.out.print(a[i]+”\t”); } }}…

    2022年5月25日
    38
  • Opencv cvCircle()函数[通俗易懂]

    Opencv cvCircle()函数[通俗易懂]Circle,即圆形。cvCircle是指绘制圆形的一个程序函数。

    2022年7月24日
    11
  • vue封装使用公共组件_vue组件封装思路

    vue封装使用公共组件_vue组件封装思路Vue组件的三要素1.props参数2.slot定制插槽3.event自定义事件基本组件开发创建一个.vue文件,其中包含template、script以及style:<template><divclass=”headComponent”>{{{msg}}</div></template><script>exportdefault{props:[‘data’,’type’],

    2022年9月23日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号