行业资讯

摄像头理论

2021-05-23 19:36:35 admin 2

系统采用的是摄像头推流,本地管理远程拉流的模式,也就是常用的推拉流模式系统,管理系统是基于摄像头本地网络的http协议管理,主要是对摄像头进行各种传输参数的设置,及画面的本地查看,本系统的整体架构包含了三个模块:摄像头的推流模块,服务器的转发模块,本地管理的系统模块。


流媒体及视频行业中常用的模式分为两种:推拉流模式及p2p模式,何为推拉流模式?通俗的解释就是摄像头将视频数据使用指定的协议推送到流媒体服务器,再由观看方从流媒体服务器拉取视频数据到本地进行播放。整个架构模式参与者有三方,第一、摄像头端的推流方,这方是视频数据的来源,也就是整个系统数据的提供方,第二、流媒体服务器方,这方主要的功能就是将视频数据进行集中转发,并且在必要的时候进行视频数据存储及视频转码,第三方、视频资源的消费端,这方主要是用来查看视频图像观察摄像头场景,数据来源是流媒体服务器,属于数据拉取方。p2p模式全称是:点对点传输模式,采用的是摄像头和观看方直接数据流通的方式,与推拉流模式想比缺少了服务器的转发,数据更快捷,延时更小,缺点是数据可控性下降,无法对传输中的视频数据进行保存、转码、分发等。不同的使用场景根据需要可以采用不同的架构模式,至于具体采用那个模式,这需要开发自己来判断,本系统采用的就是便于数据控制的推拉流模式。


推拉流模式作为一种流媒体行业的常用架构模式,使用的范围非常宽广,大到各种智能电视、网络直播平台,小到各种网络摄像头及家庭智能监控,几乎涵盖了视频行业的各个领域,为了适应各个行业的特性,推拉流模式衍生出许多不同的推拉流协议,常用的有:rtmp、rtsp、hls等等。


除了rtmp、rtsp、hls、mms等常用的公共协议,许多网络公司还会根据自己的需求定制属于自己的加密网络协议,这种协议不具有通用性,本文中不会重点详述。


rtmp全称为实时消息传输协议(Real Time Messaging Protocol),是目前市场上使用最为广泛的流媒体协议之一,使用领域相对较广,最近几年较为热门的网络直播技术,其核心的协议大多都是rtmp协议。rtmp是一种基于TCP协议的应用层协议,RTMP是一个非常大的协议体系,除了RTMP本身的基本协议之外,还包含有RTMPT/RTMPS/RTMPE等多种变种协议,市场使用频率也非常之高。其在流媒体系统中的主要作用是帮助流媒体平台和支持RTMP协议的流媒体播放器之间进行音视频数据通信,是一种进行实时数据通信的网络协议,延时相对较小。


rtsp全称为实时流传输协议(Real Time Streaming Protocol),属于TCP/IP协议体系中的一个应用层协议,主要应用在智能电视和智能机顶盒业务方面,实时性相对较小,延时比之rtmp略大,该协议属于客户端/服务器模型,是一个基于文本的传输协议,主要是用在client和server之间建立会话。是由哥伦比亚大学、网景和RealNetworks公司联合提交的IETF RFC标准,标准号为RFC2326。RTSP一般会配合RTP/RTCP协议共同使用来完成音视频数据的传输,使用RTP和RTCP协议来保证音视频数据对TCP和UDP协议的兼容,服务器可以同时支持TCP和UDP访问拉流,很好的兼容了各个环境下的异常使用。


HLS全称HTTP直播流(HTTP Live Streaming),是一种基于HTTP协议的流媒体网络传输协议,最初是由苹果公司设计提出并开发实现。它的工作原理是把整个视频流分成许多的小的基于HTTP的文件,根据用户播放速度来下载一个或者多个小文件,能够实现边下载边播放的功能。甚至当音视频流正在播放时,用户可以从许多不同的流媒体库中选择不同大小相同视频段的文件进行下载,或者允许流媒体会话自主适应不同网络速率,下载不同的媒体库文件,这样就可以达到网络良好时播放高清流媒体,网络差的情况下自动转到低码率视频流,可以尽量的减少视频播放中因网络较差而引发的播放中断问题。在播放HLS协议流时,客户端首先会第一时间下载一个包含所有媒体信息及元数据地址的文件(.m3u8文件),用于寻找服务器中可用的媒体流及分片地址,然后再根据媒体库及分片地址顺序的下载并播放媒体流。HLS是基于HTTP协议的请求/应答协议,所以使用的都是HTTP报文请求,HLS可以穿过所有允许HTTP报文数据通过的防火墙及代理服务器。苹果公司在HLS协议提出之时就已经把HLS协议草案逐步提交到IETF进行标准制定,并且在第一阶段中已作为一个非正式的标准提交到IETF机构中。但是,虽然苹果公司一直在提交HLS协议相关的更新,IETF却并没有关于制定此标准的进一步的动作。


MMS全称Multimedia Messaging Service,是一种串流媒体传送协议,可以用于传送音频、动画和视频等多媒体信息和各种视频流数据。MMS的工业标准是由3GPP和WAP Forum所制订的。因此,MMS被设计成可以在WAP协议上运行的上层协议,它可以使用各种传输格式。MMS是微软的私有协议,不属于被IETF制定的公共协议,其发展是建立在短信业务上的,随着短信业务的逐渐过时,MMS慢慢的发展成了微软的流媒体私有协议,由于其是私有协议的原因,使用领域较为狭窄,国内使用者较少,相对于其他的流媒体协议而言,具有一定的劣势,无法被公众大范围使用,就必然会使得其在应用方面会有所局限。


本系统中采用的是rtmp协议来实现音视频数据的传输,接下来本文将会重点的详述RTMP协议及在系统中的运用。


RTMP协议是应用层协议,需要底层协议来保证其可靠性,通常是使用TCP协议来保证可靠性,当然也不全都是使用TCP协议,P2P系统就非如此,P2P是基于udp协议的流媒体网络架构,在p2p架构中rtmp的可靠性需要开发者自己来保证,比如行业内较为常用的udt协议。Rtmp协议在底层通道建立之后需要经过握手来建立rtmp的连接,握手的含义类似tcp三次握手,用来确保连接双方数据的通信安全可达。客户端和服务器端在rtmp握手时各发送了三个数据包,分别是client端的:C0,C1,C2,及server端的S0,S1,S2,其交互流程是:客户端向服务器发送C0,C1数据包做第一次握手,服务器接收到C0数据包之后向客户端发送S0,S1数据包做确认握手,客户端接收到服务端发送的S0,S1确认数据包之后会再次向服务器发送一个C2数据包,当服务端接受到C2数据包之后返回客服端一个S2数据包,用来确认C2数据包接收,此时服务器端的握手流程已走完可以发送其他业务数据,当客户端接收到S2数据包时也意味着客户端的握手完成可以发送其他业务数据。


    





首页
产品
新闻
联系