首页 > 其他分享 >H.264中的帧

H.264中的帧

时间:2023-11-21 23:36:41浏览次数:28  
标签:视频 H.264 关键帧 解码 IDR PTS

导言

高级视频编码 (AVC) 也称为 H.264,是使用最广泛的视频压缩标准。它与所有主要的流式传输协议和容器格式兼容。
当我们使用播放器播放一个视频时,通常会经过:解协议,解封装,音视频解码,音视频同步这几个步骤。其中H.264就是视频解码阶段的标准。通过解封装,可以将数据解析为H.264格式的数据流,通过解码,可以将H.264格式的数据流输出为非压缩的颜色数据,如YUV,RGB等。

视频帧

在视频编码中,视频由一系列连续的图像帧组成。每一帧都代表视频中的一个瞬间图像,而它们之间存在特定的关系。为了压缩视频数据的大小,H.264中有三种不同的帧。

I帧

关键帧是视频序列中的关键参考点,它是独立编码的帧,不依赖于其他帧。
关键帧包含完整的信息,可以独立解码出网站的图像。基于其特性,播放器在进行快进操作时,一般都会跳转到I帧,确保在该关键帧之后的播放过程中可以正常解码和显示视频。这样可以有效减少解码所需的计算量,提高快进操作的响应速度。

P帧

预测帧是相对于关键帧的帧,它通过对前面的关键帧或预测帧进行预测来编码。
P帧相对于I帧具有较小的文件大小,因为它只存储相对于参考帧的差异信息。但是在进行解码时,P帧也需要依赖之前的帧进行解码。

B帧

双向预测帧引入了更复杂的预测方式,利用前后的关键帧和预测帧进行双向预测。
相对于关键帧(I 帧)和预测帧(P 帧)具有更高的压缩效率和更复杂的结构,适当的引入B帧可以显著的较小视频文件的大小,提升视频的传输效率。

帧解码和播放顺序

由于一个视频文件中可能存在I,B,P三种不同的视频帧,所以帧的解码和播放顺序可能会不同。在H.264中,有两个时间戳,一个是PTS,一个是DTS:

  • PTS(Presentation Time Stamp):
    • PTS 表示视频帧应该被展示的时间。它指示视频帧何时应该在播放器中显示给用户。
    • PTS 的时间单位通常是毫秒(ms)或时钟周期,取决于具体的应用和实现。
    • PTS 的值不仅受到帧自身的编码时间影响,还受到解码和显示的延迟等因素的影响。
  • DTS(Decoding Time Stamp):
    • DTS 表示视频帧应该被解码的时间。它指示视频帧何时应该被送入解码器进行解码。
    • 与 PTS 不同,DTS 主要关注解码过程,而不是展示过程。
    • 在一些情况下,视频帧的 DTS 可能等于其 PTS,但在其他情况下可能存在差异,这取决于编码和解码过程中的各种因素。

在视频中没有B帧时,视频的解码顺序和播放顺序如下:

Stream: I P P P P P P 
   PTS: 1 2 3 4 5 6 7
   DTS: 1 2 3 4 5 6 7

在视频中存在B帧时,视频的解码顺序和播放顺序如下:

Stream: I B B P B B P
   PTS: 1 2 3 4 5 6 7
   DTS: 1 3 4 2 6 7 5

GOP

全称是Group of Pictures,即画面组,是一组连续的画面。
一个GOP由一系列图像帧组成,这些图像帧通常都是I帧,或者P帧,或者B帧。GOP的长度就是两个I帧之间的距离。
在视频编码中,GOP(Group of Pictures)的结构通常用"M"和"N"来表示:

  • M帧(IPredictive周期):表示在两个I帧(包括第一个I帧)之间的帧数,即P帧和B帧的总数。M帧的设定影响着两个I帧之间的编码周期长度。
  • N帧(GOP周期):表示两个连续I帧之间的总帧数,包括M帧、I帧以及I帧之间的所有帧。N帧定义了一个GOP的长度。

例如

IBBPBBPBBPBB

其中M=2,N=12。这表示两个I帧之间有10帧,其中包含了2个P帧和8个B帧。这样的结构有助于提高视频编码的压缩效率和压缩质量。

IDR

I帧和IDR帧都是H.264视频编码中的关键帧,所有的 IDR 帧都是 I 帧,但是并不是所有 I 帧都是 IDR 帧。
IDR帧在一些方面和I帧有一些区别。

  • IDR帧也是关键帧,但有一个重要的特性是它可以用来随时刷新解码器的状态。
  • 当解码器在解码过程中发生错误或需要进行随机访问时,通常会使用IDR帧来重新开始解码。
  • IDR帧之后的帧不可以参考之前的帧。
    总体而言,IDR帧可以看作是一种特殊类型的I帧,具有附加的刷新解码器状态的功能。在需要在任何时间点重新开始解码时,IDR帧是很有用的。

标签:视频,H.264,关键帧,解码,IDR,PTS
From: https://www.cnblogs.com/Azion/p/17847876.html

相关文章

  • 码流格式: Annex-B, AVCC(H.264)与HVCC(H.265), extradata详解(转)
    原文:http://www.taodudu.cc/news/show-6091235.html?action=onClick1.前言介绍H.264结构的文章铺天盖地,无责任翻译、无责任转载以及部分经验之谈(目前搜索最靠前的一篇实际是对stackoverflow上答案的翻译。。链接后面给出了),所以缺的不是资料,是叙述准确的资料。来吧,看这篇整理就够......
  • EasyCVR视频融合平台Linux环境下CGO调用C接口推流异常,H.265转H.264失败的原因是?
    EasyCVR视频融合云平台采用云边端一体化架构,可以将分散在仓储各处的前端监控设备(如IPC、NVR等)集中接入,并提供实时视频监控、视频录像、云存储、录像检索与回放、智能告警、云台控制、平台级联、服务器集群等视频能力服务。通过实时高清视频监控,仓储管理人员可以高效地监管人员和货......
  • EasyCVR视频融合平台Linux环境下CGO调用C接口推流异常,H.265转H.264失败的原因是?
    EasyCVR视频融合云平台采用云边端一体化架构,可以将分散在仓储各处的前端监控设备(如IPC、NVR等)集中接入,并提供实时视频监控、视频录像、云存储、录像检索与回放、智能告警、云台控制、平台级联、服务器集群等视频能力服务。通过实时高清视频监控,仓储管理人员可以高效地监管人员和货......
  • 如何实现RTSP推送H.264、RTSP推送H.265(hevc)
    1.rtsp推送流程.主要分两部分:第一部分先发送信令;第二部分发送rtp包。信令流程:1.1先发送OPTIONS,OPTIONS比较常用,就不做详细说明了。1.2发送ANNOUNCE,发送ANNOUNCE主要是把要推送的音视频信息通过sdp格式传给服务器。关于sdp信息如何构造,对于h264请参考rfc6184.h265请参考r......
  • windows下各个浏览器用html5进行h.264大视频播放的性能对比说明
    最近在调查windows下哪种浏览器进行大视频播放时候稳定性比较高。举h.264的4g的视频为例。选用的浏览器有ie10,firefox,chrome。(因为opera不支持h.264所以没有考虑。safali在windows上的用户不是很多,也暂不考虑)先说明一下,机器的内存是2G。使用的都是最新版本的各个浏览器。采用的是h......
  • 网页播放海康,威视,大华,华为摄像头RTSP流,延迟毫秒级,支持多路播放、H.264/H.265
    一、背景:在遍地都是摄像头的今天,往往需要在各种信息化、数字化、可视化B/S系统中集成实时视频流播放等功能,海康、大华、华为等厂家摄像头或录像机等设备一般也都遵循监控行业标准,支持国际标准的主流传输协议RTSP输出,而Chrome、Firefox、Edge等新一代浏览器从2015年开始取消了NPAPI......
  • 如何在轻量级RTSP服务支持H.264扩展SEI发送接收自定义数据?
    为什么开发轻量级RTSP服务?开发轻量级RTSP服务的目的是为了解决在某些场景下用户或开发者需要单独部署RTSP或RTMP服务的问题。这种服务的优势主要有以下几点:便利性:通过轻量级RTSP服务,用户无需配置单独的服务器,降低了部署和配置的复杂性(无论是走RTMP还是GB28181,均需要平台服务支撑)。......
  • Android平台如何实现第三方模块编码后(H.264/H.265/AAC/PCMA/PCMU)数据实时预览播放
    技术诉求我们在做GB28181设备对接模块和RTMP直播推送模块的时候,遇到这样的技术需求,设备(如执法记录仪)侧除了采集传统的摄像头外,还需要对接比如大疆等第三方数据源,确保按照GB28181规范和RTMP协议规范,接入到国标平台侧和RTMP服务,除了正常的接入需求外,还需要对第三方数据源回调过来的编......
  • EasyCVR平台如何在不修改分辨率的情况下进行H.265自动转码H.264?
    EasyCVR视频融合平台基于云边端一体化架构,可支持多协议、多类型设备接入,在视频能力上,平台可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、H.265转码、智能分析以及平台级联等。我们在此前的文章中介绍过关于EasyCVR平台H.265自动转码的功能,今......
  • h265编码是什么意思,H265的编码和H264的编码有什么区别,视频编码h.264和mpeg4的对比
    MPEG-4标准则是基于对象和内容的编码方式,和传统的图像帧编码方式不同,它只处理图像帧与帧之间的差异元素,抛弃相同图像元素,因此大大减少了合成多媒体文件的体积,从而以较小的文件体积同样可得到高清晰的还原图像。换句话说,相同的原始图像,MPEG-4编码标准具有更高的压缩比。H.264编码技......