H264

作者: 拾识物者 | 来源:发表于2019-04-07 22:14 被阅读0次

官网定义

H.264: H.264/AVC项目的目的是为了创建一个比以前的视频压缩标准,在更低的比特率的情况下依然能够提供良好视频质量的标准(如,一半或者更少于MPEG-2,H.263,或者MPEG-4 Part2 )。同时,还要不会太大的增加设计的复杂性。
优势:
1)网络亲和性,即可适用于各种传输网络
2)高的视频压缩比,当初提出的指标是比 H.263,MPEG-4,约为它们的 2 倍,现在都已基 实现;

概念

QP

量化是在不降低视觉效果的前提下减少图像编码长度,减少视觉恢复中不必要的信息。H264采用标量量化技术,它将每个图像样点编码映射成较小的数值。一般标量量化器的原理为:FQ = round(y/Qstep)。其中,y为输入样本点编码,Qstep为量化步长,FQ为y的量化值。其相反过程即反量化为:y' = FQ ·Qstep。

h264编码时,将每一帧的图像分为很多个宏块,每个宏块编码后都有一个qp值(每个宏块的qp不一定相等)。所以对于每一帧图像来说,都有一个最大qp值和最小qp值,也就是max_qp 和min_qp。

现有的码率控制算法主要是通过调整离散余弦变换的量化参数大小输出目标码率。实际上,量化参数(QP)反映了空间细节压缩情况,如QP小,大部分的细节都会被保留;QP增大,一些细节丢失,码率降低,但图像失真加强和质量下降。也就是说,QP和比特率成反比的关系,而且随着视频源复杂度的提高,这种反比关系会更明显

NACK

概念和定义

在WebRTC中,丢包重传(NACK)是抵抗网络错误的重要手段。NACK则在接收端检测到数据丢包后,发送NACK报文到发送端;发送端根据NACK报文中的序列号,在发送缓冲区找到对应的数据包,重新发送到接收端。NACK需要发送端发送缓冲区的支持,RFC5104[2]定义NACK数据包的格式。

NACK是一种RTCP报文。RTP/RTCP协议是流媒体通信最基本协议。RTP协议定义流媒体数据在互联网上传输的数据包格式,而RTCP协议则负责可靠传输、流量控制和拥塞控制等服务质量保证。在RTP会话期间,各参与者周期性彼此发送RTCP报文。报文中包含各参与者数据发送和接收等统计信息,参与者可以据此动态控制流媒体传输质量。

RTP:Real-time Transport Protocol
RTCP:RTP Control Protocol

简言之,RTCP是用来控制RTP的,类似于信令和数据。

说NACK前,先说说ACK。ACK实际上就是到达通知技术。大家都知道TCP是可靠的连接,他之所以可靠,那是因为接收方在收到数据后会给发送方返回一个“已收到数据”的消息(ACK),告诉发送方“我已经收到了”,确保消息的可靠。

NACK也是一种通知技术,只是触发通知的条件刚好的ACK相反,在未收到消息时,通知发送方“我未收到消息”,即通知未达。

在WebRTC中,NACK在接收端检测到数据丢包后,发送NACK报文到发送端;发送端根据NACK报文中的序列号,在发送缓冲区找到对应的数据包,重新发送到接收端。

流程

  1. SDP协商
  2. 接收端丢包判定
  3. NACK报文发送和接收
  4. RTP数据包重传

相关文章

  • H264 编解码

    H264编解码(一) —— 基本概览H264编解码(二) —— ios中的H264硬编解码的实现H264编解码(三...

  • h264

    h264 简介h264 语法和结构

  • VideoToolbox硬解码H264流播放

    VideoToolBox硬解码H264 对于H264和VideoToolBox还不熟悉的童鞋一定下先看下H264基...

  • H264能力协商

    1、能力计算 H264能力计算 这是一个最常见的H264能力,通过抓包我们发现,H264主要包含了Profile、...

  • iOS 使用 FFmpeg

    配置支持 h264 编解码 下载 h264 源码和对应的编译脚本; 将解压后的 h264 源码文件夹改名成 x26...

  • Android RTMP录频直播二(录屏H264视频编码)

    一、录屏H264编码简单流程 1. H264编码配置类 2. 录屏H264编码代码 使用测试类 4.补充说明 Me...

  • ffmpeg一些常用命令

    rtsp流存储为mp4文件 rtsp流编码为h264文件 h264文件转mp4 ffmpeg gpu编码h264文...

  • VideoToolBox 编码H.264

    VideoToolBox 编码H.264 使用VideoToolBox硬编码获取H264 简单介绍一下 H264,...

  • FFmpeg的入门

    引言H264编码使用 VideoToolbox硬编码录制H264视频 从iOS8开始,苹果将VideoToolbo...

  • H264和H265的nalu介绍

    本篇介绍 本篇介绍下H264和H264的编码格式,包括avcc,annexb,以及转换方法。annexb 用于实时...

网友评论

      本文标题:H264

      本文链接:https://www.haomeiwen.com/subject/gnsgvftx.html