1. h.264分为两部分组成:VCL 和 NAL
    VCL: 是指如何进行视频压缩算法的纯视频流的部分,这里不做说明(这里是大公司给完成的部分)
    NAL:是指网络抽象层部分(Network Abstraction Layer Units),说白了是给每个序列加入一个头信息;方便网络传输。
    举个例子:比如我们寄快递一样,VCL指你要邮寄的东西,NAL是你的包装盒和邮寄单信息,而这里的RTSP好比是快递公司。
    小结:做编码器的人关心的是VCL部分,做视频传输和解码播放的人关心的是NAL部分。

  2. 一些概念:
    I帧:非参考帧,一般为第一帧
    B帧:前后帧都做参考
    P帧:只参考前一帧
    像素->码流:像素—宏块—片(slice)—帧 — 序列 — 码流
    序列(seqence):LSPS(14字节) + LPPS(4字节) + Lsei (5字节)+ 1I帧 + 若干P帧
    一个序列的数目好比是帧率;比如帧率是30Hz,那么这个序列就是 1I帧 + 29个P帧。
    一段H.264的码流其实就是多个seqence组成的,SPS,PPS和sei描述的是sequence的图 像信息,I帧是关键,丢了I帧这个sequence就废了,每个sequence只有一个I帧。
    分隔符:在NAL中序列参数集和图像参数集开头都会有个00 00 00 01这个的分割符;
    Profile:在psp中包含了这个参数,主要是定义了编码工具的集合(使用的哪种算法)
    Level:主要是对码流的关键参数,取值范围。比如分辨率

  3. RTSP概述
    RTSP(Real Time Streaming Protocol),参考标准为 RFC2326,RTSP 协议是基于文本 的实时流传输协议,是 TCP/一个应用层协议。
    图解

    传输过程

RTSP 消息格式

1 请求格式(Request)

2 回应消息格式(Response)

RTSP中的 C(Client)与 S(Server)交互流程图解

4、RTSP 关键字段说明

4.1 关键字:OPTIONS
得到服务器提供的可用方法(OPTION、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、SCALE、GET_PARAMETER、SET_PARAMETER)。

4.2 关键字:DESCRIBE
请求流的 SDP 信息。
注解:此处需要了解 H264 Law Data 如何生成 SPS PPS 信息。

4.3 关键字:SETUP
客户端提醒服务器建立会话,并建立传输模式。
注解:此处确定了 RTP 传输交互式采用 TCP(面向连接)还是 UDP(无连接)模式。

4.4 关键字:PLAY
客户端发送播放请求。
注解:此处引入 RTP 协议及 RTCP 协议。

4.5关键字:PAUSE
播放暂停请求。
注解:此关键字经常用在录像回放当中,实时视频流几乎用不到。

4.6 关键字:TEARDOWN
客户端发送关闭请求

4.7 关键字:GET_PARAMETER
从服务器获取参数,目前主要获取时间参数(可扩展)

4.8 关键字:SET_PARAMETER
给指定的 URL 或者流设置参数(可扩展)

从流程图的第4步PLAY以下是RTSP对编码好的H.264的传输,采取分包发送的方法,这里的RTSP每包发送的最大是1400(nalu_sent_len)个字节,
首先要调用VENC_Sent的时候,要传参给它一个一帧的长度(nAvFrmLen),其中有个timestamp_increse,在同一帧的数据timestamp_increse是相同的,两帧的间隔算法:
timestamp_increse=(unsigned int)(90000.0 / 25)这里的90000.0是h.264的时钟频率,25是帧
率。这两帧的间隔是3600;
在一包数据头的部分有个rtp_hedr:有个marker是用来做标记的,在一帧中是分为多包发送的,只有最后一包marker=1,前面的其他包都是等于0;

4.9 RTSP状态码
Status-Code = “100” ; Continue
| “200” ; OK
| “201” ; Created
| “250” ; Low on Storage Space
| “300” ; Multiple Choices
| “301” ; Moved Permanently
| “302” ; Moved Temporarily
| “303” ; See Other
| “304” ; Not Modified
| “305” ; Use Proxy
| “400” ; Bad Request
| “401” ; Unauthorized
| “402” ; Payment Required
| “403” ; Forbidden
| “404” ; Not Found
| “405” ; Method Not Allowed
| “406” ; Not Acceptable
| “407” ; Proxy Authentication Required
| “408” ; Request Time-out
| “410” ; Gone
| “411” ; Length Required
| “412” ; Precondition Failed
| “413” ; Request Entity Too Large
| “414” ; Request-URI Too Large
| “415” ; Unsupported Media Type
| “451” ; Parameter Not Understood
| “452” ; Conference Not Found
| “453” ; Not Enough Bandwidth
| “454” ; Session Not Found
| “455” ; Method Not Valid in This State
| “456” ; Header Field Not Valid for Resource
| “457” ; Invalid Range
| “458” ; Parameter Is Read-Only
| “459” ; Aggregate operation not allowed
| “460” ; Only aggregate operation allowed
| “461” ; Unsupported transport
| “462” ; Destination unreachable
| “500” ; Internal Server Error
| “501” ; Not Implemented
| “502” ; Bad Gateway
| “503” ; Service Unavailable
| “504” ; Gateway Time-out
| “505” ; RTSP Version not supported
| “551” ; Option not supported
| extension-code
extension-code = 3DIGIT
Reason-Phrase = *<TEXT, excluding CR, LF

H.264NLU和RTSP协议理解相关推荐

  1. 个人对rtsp协议的理解

    由于业务需求,要实现rtsp协议下的视频流代理功能,此前对rtsp协议不了解,搜索了很多关于rtsp的文章,一点点的弄明白了,现在项目开发完成了,打算把自己总结的知识点分享给有需要的人,第一次在csd ...

  2. RTSP协议-中文定义

    转自:http://blog.csdn.net/arau_sh/article/details/2982914 E-mail:bryanj@163.com 译者: Bryan.Wong(王晶,宁夏固原 ...

  3. 音视频之RTSP协议简介

    音视频之RTSP协议简介 RTSP简介 RTSP协议以客户端/服务器方式工作,如:暂停/继续.后退.前进等.它是一个多媒体播放控制协议,用来控制用户在播放从因特网下载的实时数据,因此 RTSP 又称为 ...

  4. RTSP 协议详细介绍

      RTSP协议分析 收藏 Network Working Group H. Schulzrinne Request for Comments: 2326 Columbia U. Category: ...

  5. RTSP 协议漫谈,揭秘 RTSP 协议内幕

    RTSP(Real Time Streaming Protocol)实时流传输协议,定义在 RFC2326,是 TCP/IP 协议体系中的一个应用层协议,由哥伦比亚大学.网景和 RealNetwork ...

  6. 国标28181:什么是RTSP协议

    前言 RTSP出现之前,最热的大概就是HTTP协议.想象一下,当你需要欣赏网络中的某一段视频,通过HTTP协议访问其URL.开始下载.下载完成之后播放.对于早期的视频采集设备.网络带宽或是负责渲染的显 ...

  7. 海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法

    行业现状 中国互联网化的进程已经越来越快了,各个行业都在进行着互联网化的改造,流媒体.音视频,作为跑在互联网上最大量级的数据类型,其从编码方式到传输协议到终端兼容都成为各家标准抢占的高点,RTMP.H ...

  8. 最详细的流媒体传输协议-rtsp协议详解

    流媒体传输协议-rtsp协议详解 参阅:RTSP协议详解和分析从零开始写一个RTSP服务器(一)RTSP协议讲解关于RTSP_RTP_RTCP协议的深刻初步介绍 rtsp RTSP出现以前,最热的大概 ...

  9. RTSP协议详解(转载)

    流媒体传输协议介绍 一.RTSP协议介绍 什么是rtsp? RTSP协议以客户服务器方式工作,,如:暂停/继续.后退.前进等.它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进 ...

最新文章

  1. 软件测试(一):概念篇
  2. Mongodb部署及使用
  3. Tensorflow编程遇到的问题汇总【持续更新】
  4. 事件触发控制_前端性能优化:事件的节流throttle与防抖debounce
  5. python自学笔记之开源小工具:SanicDB介绍
  6. 是时候开始用C#快速开发移动应用了
  7. pat 乙级 1041 考试座位号(C++)
  8. 【Java】@transient代表着什么
  9. c语言常用转向的语句,java中类似于C语言的goto无条件转向语句的语法是什么?...
  10. SRv6技术研究和组网设计
  11. 拉格朗日插值法总结模板(1~n)
  12. 基于Hadoop平台使用MapReduce统计某银行信用卡违约用户数量
  13. 使用Chrome调试JavaScript
  14. 真探rust和maggie_《真探》报选艾美最佳剧情类 老白与Rust将厮杀
  15. 游戏服务器和普通服务器的区别
  16. maximo工作流画布加载失败问题
  17. CSDN程序员过中秋,那是一个热闹
  18. Unity3D-设置地形
  19. Redis入门完整教程:复制原理
  20. 用友NC65产品的对账节点联查业务帐

热门文章

  1. 重磅!李飞飞入选美国国家医学科学院,她用AI改变了医疗
  2. 用LaTeX优雅地书写伪代码:Algorithm2e简明指南
  3. 八年之痒!除了NLP和CV,人工智能就不能干点别的啥了?
  4. 太赞!639 页《深度学习:Deep Learning》硬核课程 PPT 下载
  5. 多地给毕业生发补贴!有的高达6000元/人
  6. 【每日一算法】两个列表的最小索引总和
  7. ACMNO.9求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),n由键盘输入。 输入 n 输出 a=2 时
  8. 机器视觉系统设计关键:成像基准
  9. PyTorch中模型的可复现性
  10. Batch Normalization应该放在ReLU非线性激活层的前面还是后面?