Bootstrap

视频协议与封装格式

视频协议

RTSP

RTSP协议是一个实时流传输协议,输出rtp封装码流,具有很好的可扩展性,新方法和参数很容易加入RTSP

ONVIF

ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂家所产生的网络视频产品完全互通。

  • 特点

                信令由WebService实现

                取流使用RTSP协议

                码流封装格式为rtp

                兼容性强,配套完善,市场占有率高

  • 使用场景

                第三方设备接入

                海外市场

RTMP

实时消息传输协议,输出flv封装码流。RTMP协议传输数据格式是RTMP Message,但在传输时发生端会把Message划分为带有Message ID的chunk,在接收端会根据chunk中包含data的长度,message id和message的长度把chunk还原完整的message,从而实现信息的收发。

HLS

HTTP Live Streaming,输出TS封装码流。

  • HLS协议由三部分组成,HTTP+M3U8+TS
  • HTTP是传输协议,M3U8是索引文件,TS是视音频的媒体信息
  • 利用切片技术按设定的时间间隔对TS码流进行切割并保存为一个TS文件

缺点:因为要有缓存,所以延迟严重

视频封装格式

RTP

RTP是实时传输协议,是rtsp协议码流传输的封装格式

RTP码流每帧中所有的时间戳相等,且最后一个RTP包,包头的mark bit置1,RTP包含RTP头和RTP数据

  • 优点:RTP封装包头有序列号,udp传输时可进行排序和丢包检测,适用于码流网络传输
  • 缺点:RTP封装头内没有包长的字段,写入文件后,无法读出一个完整的包,所以RTP封装的码流保存成文件是不能直接播放的,不适合存储

TS

TS是基于MPEG-2的封装格式,特点就是视频流的任一片段开始都是可以独立解码的,广泛应用于数字电视领域

TS分为三层ts层、pes层、es层

  1. es层就是音视频数据
  2. pes层是在音视频数据上加了时间戳等对数据帧说明信息
  3. ts层是在pes层上加入数据刘识别和传输的必要信息码流

TS码流采用固定长度188字节的数据包

  • 优点:

       当传输误码破坏了某一个TS包的同步信息时,接收端可在固定的位置检测到下一个TS包到同步信息,从而恢复同步,避免数据丢失,适用于在传输误码丢失,适用于传输误码丢失比较严重的网络场景

  • 缺点:

       负载有限,封装存在浪费,如果数据信息只有10字节大小也进行188字节TS封装,不建议用于存储

FLV

FLV主要是为了Adobe公司flash播放器和服务器之间音频视频和数据传输开发的开放协议RTMP协议的网络传输

FLV包括文件头和文件体两部分,文件体由一系列的Tag及Tag size对组成,Tag又可以分为audio、video和script,分别代表音频流,视频流和脚本流

  • 优点

                文件体积小,便于传输、共享

                众多网站支持所有

  • 缺点

                不被所有播放器支持

PS

ps是程序流或节目流的简称,程序流将一个或多个分组但有共同的时间基准的基本数据流(PES)合并成一个整体流

PS流可以视为多个PS GOP,每个GOP是以I帧起始的多帧集合,包括音频帧、P/B帧等多个PS包组成

  • 优点:定义较多可扩展字段,拓展性好,结构简单,易于分割,和TS封装相比,相同视频时长的数据量较少,适用于存储
  • 缺点:PS流的包结构是可变长的,一旦某一PS包同步信息丢失,接收端无法确定下一个包的同步位置,就会造成失步,导致严重的信息丢失,在信道环境较好,传输误码较低时,采用PS码流网络传输
;