H.264视频编码的文件格式?

作者&投稿:脂竖 (若有异议请与网页底部的电邮联系)
h264是什么视频格式,这种格式有什么特点~


mkv、mp4这些视频格式有啥不同?H.264又是什么格式?

1、 H.264 视频编码标准状况

H.264 是由ITU-T 的VCEG(视频编码专家组)和ISO/IEC 的MPEG(活动图像编码专家组)联合组建的联合视频组(JVT:joint video team)提出的一个新的数字视频编码标准,它既是ITU-T 的H.264,又是ISO/IEC 的MPEG-4 的第10 部分。而国内业界通常所说的MPEG-4 是MPEG-4 的第2 部分。H.264标准从1998 年1 月份开始草案征集,到2003 年7 月,整套H.264 (ISO/IEC 14496-10)规范定稿。2005年1 月,MPEG 组织正式发布了H.264 验证报告,从各个方面论证了H.264 的可用性以及各种工具集的效果,从标准的角度,印证H.264 的成熟性。

H.264编码的视频 从标准制定到颁布,H.264 一直是ITU、MPEG、DVD、DVB、3GPP 等工业化组织共同推进的视频编码国际标准,可以想见,在众多行业巨擘的推动下,H.264 技术的应用将迅速进入到视频服务、媒体制作发行、固定及移动运营网络、平台开发、设备终端制造、芯片开发等多个领域。
2、 H.264 视频编码技术先进性
H.264 使图像压缩技术上升到了一个更高的阶段,能够在较低带宽上提供高质量的图像传输,该优点非常适合国内运营商用户量大、接入网/骨干网带宽相对有限的状况。在同等的画质下,H.264 比上一代编码标准MPEG2 平均节约64%的传输码流,而比MPEG4 ASP 要平均节约39%的传输码流。全球很多IPTV业务运营商都将H.264 作为编解码格式的标准,包括比利时电信,荷兰KPN,泰国ADC 电信,中国电信等等。
根据中国电信上海研究院的实际测试结果表明:国内普遍采用的MPEG-4 编码技术在3Mbps 的带宽下尚达不到标清的图像质量,而H.264 编码技术可以在2M 带宽下提供要求的图像效果。因而运营商希望引入更先进的H.264 编码技术,在有限的带宽资源下进一步提高图像质量。

一、H.264编码格式

  H.264从层次来看分为两层:视频编码层(VCL, Video Coding Layer)和网络提取层(NAL,Network Abstraction Layer)。VCL输出的是原始数据比特流(SODB,String of data bits),表示H.264的语法元素编码完成后的实际的原始二进制码流。SODB通常不能保证字节对齐,故需要补齐为原始字节序列负荷(RBSP,Raw Byte Sequence Payload)。H.264引入了片(slice)的概念,每个片只携带该片自身独有的句法元素,一个片的丢失不会影响其他片的解码,还可以通过该片前后的片来恢复该片的解码。

       NAL层实际上就是最终输出的H.264码流,它是由一个个NALU组成的,每个NALU包括一组对应于视频编码数据的NAL头信息和一个原始字节序列负荷(RBSP,Raw Byte Sequence Payload)。以上名词之间的关系如下:

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码流的结构如下:

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

0x00 00 00 -> 0x00 00 03 000x00 00 01 -> 0x00 00 03 010x00 00 02 -> 0x00 00 03 020x00 00 03 -> 0x00 00 03 03

  一个NALU就是编码后的一帧数据。NAL header是一个字节:

  forbidden_zero_bit(1 bit) 禁止位,等于0;

  nal_ref_idc(2 bit)指示当前NAL的优先级,取值范围为0~3,值越高,表示当前NAL越重要。H.264规定,如果当前NAL是序列参数集,或是图像参数等,该值必须大于0.比如nal_unit_type等于5时,nal_ref_idc大于0;nal_unit_type等于6,9,10,11或12时,nal_ref_idc等于0;

  nal_unit_type表示当前NALU的类型,表格如下:

nal_unit_type

   

NAL类型

   

C

   

0

   

未使用

   

 

   

1

   

不分区、非IDR图像的片

   

2,3,4

   

2

   

片分区A

   

2

   

3

   

片分区B

   

3

   

4

   

片分区C

   

4

   

5

   

IDR图像中的片

   

2,3

   

6

   

补充增强信息单元(SEI)

   

5

   

7

   

序列参数集(SPS)

   

0

   

8

   

图像参数集(PPS)

   

1

   

9

   

 分界符

   

 6 

   

10

   

序列结束

   

7

   

11    码流结束    8    

12    填充    9    

13~23    保留         

24~31    未使用         

  nal_unit_type=5时,表示当前NAL是IDR图像的一个片,此时,IDR图像中的每个片的nal_unit_type都应该等于5.

  一般H.264原始码流是以SPS->PPS->SEI->IDR->SCLICE->SCLICE…开头的。 

  GOP即Group of picture(图像组),指两个I帧之间的距离。即几秒有一个关键帧。一般在2、3秒之间。

二、H.264 Tips

  H.264有两种封装格式:

  (1)annexb模式:传统模式,使用start code来分隔NAL, SPS和PPS是在ES流的头部;

        Annex-B: startCode Nalu1, startCode Nalu2......startCode NaluN

  (2)mp4模式:没有start code,使用NALU长度(固定字节,通常为4个字节)来分隔NAL。AVCodecContext的extradata内部保存着分隔的字节数,SPS和PPS;

        mp4(AVCC): NaluLength Nalu1, LaluLength Lalu2, ......NaluLength NaluN

  SPS的头部是0x67,PPS的头部是0x68,要保持对数据的敏感性。

       IDR帧:IDR帧都是I帧,H.264引入IDR图像是为了解码的重同步,当解码器解码到IDR帧时,会立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数及,开始一个新的序列。IDR帧之后的图像永远不会引用IDR帧之前图像的数据来解码。IDR帧一定是I帧,I帧不一定是IDR帧。

  当解码器性能不足需要丢帧时,nal_ref_idc可以作为判断能否丢帧的依据。如果nal_ref_idc为0,则可以丢弃。当该帧nal_unit_type等于6,9,10,11或12时,nal_ref_idc为0。部分非IDR帧的nal_ref_idc也为0,也可以丢弃。丢弃的同时也能保证不会花屏。





MKV 的 比较多。。


视频编码h.264怎么看
第一步:用potPlayer文章播放器打开原始文章文件。第二步:对着文章播放画面,右击选择属。第三步:在文章编码处可以看到本文章的编码是wm3格式,也可能是其他格式编码格式,现在我们需要将它变成A V C h264 编码格式。

怎么分辨H.264或H.265编码视频?
接下来,当视频画面处于活动状态时,右键点击视频,从弹出菜单中选择"文件信息"或类似的选项。这一步将显示关于视频的详细属性。最后,点击"文件信息"后,您会看到一个包含视频编码详细信息的窗口。在编码部分,您会找到关于视频是H.264还是H.265格式的明确指示。通过以上步骤,您就能轻松识别视频的编解码...

视频编码器H.264、HEVC、AV1、VP9区别
视频编码器:H.264、HEVC、AV1、VP9的深入解析<\/ H.264(AVC):经典与广泛作为基石,H.264(AVC)以其高效编码脱颖而出,低码率下提供高清画质<\/,在实时通信和存储中表现出色。兼容性极佳,几乎覆盖所有平台,包括智能电视和OTT服务。然而,编码复杂度高,对硬件要求较高<\/,且不支持4K分辨率,黑...

xvid和h264有什么区别?
Xvid和H.264在视频编码技术上有显著的区别。首先,从压缩效率来看,H.264采用了更先进的编码技术,如帧内预测、帧间预测和变换编码等,因此具有更高的压缩效率。这意味着在相同的视频质量下,H.264可以比Xvid节省更多的存储空间和传输带宽。例如,在相同的视频质量下,一个使用H.264编码的视频文件可能...

怎么进行H264视频解码、编码?
1. 理解H264编码原理 H264,全称MPEG-4 Part 10,是一种高效的视频编码标准,通过先进的帧内预测、运动估计和熵编码等技术,实现了高清晰度视频的压缩。要进行解码,你需要理解这些基础概念,包括帧结构、宏块、熵编码表等,这些是后续操作的基石。2. 选择合适的库和工具 市面上有许多开源库可以进行...

目前H.264编码和h.265编码的应用途径是什么?
H.264和H.265是两种常见的视频编码标准,也被称为AVC和HEVC。它们的应用途径如下:1. 视频压缩:H.264和H.265都是为了压缩视频数据而设计的。它们可以将高质量的视频数据压缩到更小的文件大小,以便更好地存储和传输。2. 视频流媒体:H.264和H.265广泛应用于视频流媒体服务,如YouTube、Netflix和...

mp4文件有几种编码格式?
MP4文件通常使用多种编码格式来存储音频和视频数据,主要包括以下几种常见的编码格式:H.264和H.265:这是两种广泛使用的视频编码格式,它们提供了高效的压缩率和良好的视频质量。H.264是早期的主流编码格式,而H.265则是其后续版本,提供了更高的压缩效率和更好的视频质量。AAC:这是一种常见的音频...

视频和视频帧:H264编码格式整理
一、H264编码格式的必要性 所有的视频在使用前都需要编码,以减少网络传输对带宽的需求,这是由于未经压缩的视频体积庞大,传输压力巨大,国际电信联盟电信标准分局(ITU-T)和ISO\/IEC为此制定了视频压缩标准,其中H.264和MPEG-4的关系复杂,尽管名字不同,但内容由两者共同定制。二、H264编码格式发展历史...

h264是什么格式
h264是MPEG-4标准所定义的最新格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,有的也称(AVC)。H.264,是一种高性能的视频编解码技术,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG),和ISO\/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,JointVideoTeam),...

H.264视频编码的文件格式?
1、 H.264 视频编码标准状况 H.264 是由ITU-T 的VCEG(视频编码专家组)和ISO\/IEC 的MPEG(活动图像编码专家组)联合组建的联合视频组(JVT:joint video team)提出的一个新的数字视频编码标准,它既是ITU-T 的H.264,又是ISO\/IEC 的MPEG-4 的第10 部分。而国内业界通常所说的MPEG-4 是...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网