zoukankan      html  css  js  c++  java
  • 视频传输总结

    I帧,P帧

      帧是组成视频图像的基本单位。关键帧也叫I帧,它是帧间压缩编码里的重要帧;它是一个全帧压缩的编码帧;解码时仅用I帧的数据就可重构完整图像;I帧不需要参考其他画面而生成。视频文件是由多个连续的图片组成。

      除了I帧之外,还有P帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)。

     

    参考:什么是I帧,P帧,B帧(http://blog.csdn.net/abcjennifer/article/details/6577934

    视频大小

    Name

    Payload

    Width

    Height

    QCIF

    125

    176

    144

    CIF

    104

    352

    288

    4CIF

    123

    704

    576

    720P

    122

    1280

    720

    1080P

    121

    1920

    1080

    RTP头部格式和负载

        版本(V):2 个比特,表示RTP 的版本号。
        填充(P):1 个比特,置“1”表示用户数据最后加有填充位,用户数据中最后一个字节是填充位计数,它表示一共加了多少个填充位。在两种情况下可能
        需要填充,一是某些加密算法要求数据块大小固定;二是在一个低层协议数据包中装载多个RTP 分组。
        扩展(X):1 个比特,置“1”表示RTP 报头后紧随一个扩展报头。
        CSRC 计数(CC):4 个比特,表示在定长的RTP 报头后的CSRC 标识符的    数量。
        标记(M):1 个比特,其具体解释由应用文档来定义。例如,对于视频流,它表示一帧的结束,而对于音频,则表示一次谈话的开始。
        载荷类别(PT):7 个比特,它指示在用户数据字段中承载数据的载荷类别。
        序号(SN):2 个字节,每发送一个RTP 数据包该序号增加1。该序号在接收方可用来发现丢失的数据包和对到来的数据包进行排序。
        时间戳(TS):4 个字节,它用来表示RTP 包中用户数据段的第一个字节的采样时刻。时间戳的时间表示应为线性单调递增的,以便完成同步实现和抖动的计算。
        同步源标识符(SSRC):4 个字节,用来标识一个同步源。此标识符是随机选择的,但要保证同一RTP 会话中的任意两个SSRC 各不相同,RTP 必须检测并解决冲突。
        提供源标识符(CSRC):它可有0~15 项标识符,每一项长度为32 比特,其项数由CC 字段来确定。如果提供源多于15 个,则只有15 个被标识。
        为了能满足各种应用的需要,RTP 报头可进一步扩充,其时X 比特将置“1”,扩充的RTP 报头部分则紧随在SCRC 清单之内。 

    PT字段标明RTP负载的格式,包括所采用的编码算法、采样频率、承载通道等。例如,类型2表明该RTP数据包中承载的是用ITU G.721算法编码的语音数据,采样频率为8000Hz,并且采用单声道。

     sdp中描述H.264流

    "m=" 行中的媒体名必须是 "video"

    "a=rtpmap" 行中的编码名称必须是 "H264".

    "a=rtpmap" 行中的时钟频率必须是 90000.

    其他参数都包括在 "a=fmtp" 行中.

    packetization-mode: 
    表示支持的封包模式. 
    当 packetization-mode 的值为 0 时或不存在时, 必须使用单一 NALU 单元模式.
    当 packetization-mode 的值为 1 时必须使用非交错(non-interleaved)封包模式.

    当 packetization-mode 的值为 2 时必须使用交错(interleaved)封包模式.

    profile-level-id:
    这个参数用于指示 H.264 流的 profile 类型和级别. 由 Base16(十六进制) 表示的 3 个字节. 第一个字节表示 H.264 的 Profile 类型, 第三个字节表示 H.264 的 Profile 级别

    max-mbps: 

    这个参数的值是一个整型, 指出了每一秒最大的宏块处理速度.

     

    H.264 profile

    参考:http://xcshen.blog.51cto.com/2835389/552669

    H.264有四种画质级别,分别是BP、EP、MP、HP:

      1、BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
      2、EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;
      3、MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),
        也支持CAVLC 和CABAC 的支持;
      4、HP-High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;

     

    H.264 profile

     

     

    H.264 level

     

    Software Encoder

  • 相关阅读:
    SpringBoot基础
    开始一个新的springboot项目checklist
    五项修炼: 终生学习者
    价值流分析-改进方法论
    伯努利方程
    会计语言
    svg蒙版mask
    从svg到计算机图形学
    xflux 调节屏幕色温
    处理器架构
  • 原文地址:https://www.cnblogs.com/cubika/p/3366600.html
Copyright © 2011-2022 走看看